Limite de taille de pile Javascript du navigateur IE
Les erreurs de dépassement de pile Javascript dans les navigateurs IE peuvent entraver l'exécution de fonctions complexes. Ce problème est dû à la taille limitée de la pile du navigateur par rapport aux autres navigateurs populaires. Pour déterminer la limite de taille de pile, un simple test HTML peut être effectué :
<code class="html"><head><script> function doSomething(i) { if (i == 0) return -1; doSomething(i-1); } doSomething(3200); </script></head><body></body></code>
Dans IE, un débordement de pile se produit autour de 3 200 alors que des navigateurs comme Firefox et Chrome peuvent gérer une récursion considérablement plus profonde.
Suivi de la source du débordement
En cas de débordement de pile, il est utile d'identifier la fonction spécifique qui a provoqué l'erreur. Malheureusement, la plupart des navigateurs ne fournissent pas de mécanisme intégré pour tracer les cadres de pile JavaScript. Cependant, une solution de contournement peut être utilisée à l'aide d'un bloc try/catch :
<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>
Ce code incrémente progressivement un compteur jusqu'à ce qu'un débordement de pile se produise. L'erreur détectée vous permet de déterminer la taille maximale de la pile du navigateur, ce qui peut fournir des informations pertinentes lors du débogage des problèmes de débordement de pile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!