Rumah  >  Artikel  >  hujung hadapan web  >  Apakah Had Saiz Timbunan JavaScript dalam IE dan Bagaimana Saya Boleh Menemuinya?

Apakah Had Saiz Timbunan JavaScript dalam IE dan Bagaimana Saya Boleh Menemuinya?

DDD
DDDasal
2024-10-31 07:45:29888semak imbas

 What is the JavaScript Stack Size Limit in IE and How Can I Find It?

Had Saiz Tindanan Javascript Pelayar IE

Ralat limpahan tindanan Javascript dalam pelayar IE boleh menghalang pelaksanaan fungsi yang kompleks. Isu ini timbul kerana saiz tindanan penyemak imbas yang terhad berbanding pelayar popular yang lain. Untuk menentukan had saiz tindanan, ujian HTML mudah boleh dilakukan:

<code class="html"><head><script>
function doSomething(i) {
  if (i == 0) return -1;
  doSomething(i-1);
}

doSomething(3200);
</script></head><body></body></code>

Dalam IE, limpahan tindanan berlaku sekitar 3200 manakala penyemak imbas seperti Firefox dan Chrome boleh mengendalikan rekursi yang jauh lebih mendalam.

Menjejaki Sumber Limpahan

Sekiranya limpahan tindanan, adalah berguna untuk mengenal pasti fungsi khusus yang menyebabkan ralat. Malangnya, kebanyakan penyemak imbas tidak menyediakan mekanisme terbina dalam untuk mengesan bingkai tindanan JavaScript. Walau bagaimanapun, penyelesaian boleh digunakan menggunakan blok cuba/tangkap:

<code class="javascript">var i = 0;
function inc() {
  i++;
  inc();
}

try {
  inc();
}
catch(e) {
  // Manual adjustment for StackOverflow sandbox
  i++;
  console.log('Maximum stack size is', i, 'in your current browser');
}</code>

Kod ini secara beransur-ansur menambah pembilang sehingga limpahan tindanan berlaku. Ralat yang ditangkap membolehkan anda menentukan saiz tindanan maksimum penyemak imbas, yang boleh memberikan maklumat yang bernas apabila menyahpepijat isu limpahan tindanan.

Atas ialah kandungan terperinci Apakah Had Saiz Timbunan JavaScript dalam IE dan Bagaimana Saya Boleh Menemuinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn