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!