Javascript-Stack-Größenbeschränkung für IE-Browser
Javascript-Stack-Überlauffehler in IE-Browsern können die Ausführung komplexer Funktionen behindern. Dieses Problem entsteht aufgrund der begrenzten Stapelgröße des Browsers im Vergleich zu anderen gängigen Browsern. Um die Stapelgrößenbeschränkung zu ermitteln, kann ein einfacher HTML-Test durchgeführt werden:
<code class="html"><head><script> function doSomething(i) { if (i == 0) return -1; doSomething(i-1); } doSomething(3200); </script></head><body></body></code>
Im IE tritt ein Stapelüberlauf bei etwa 3200 auf, während Browser wie Firefox und Chrome wesentlich tiefere Rekursionen verarbeiten können.
Überlaufquelle verfolgen
Im Falle eines Stapelüberlaufs ist es hilfreich, die spezifische Funktion zu identifizieren, die den Fehler verursacht hat. Leider bieten die meisten Browser keinen integrierten Mechanismus zum Verfolgen von JavaScript-Stack-Frames. Eine Problemumgehung kann jedoch mithilfe eines Try/Catch-Blocks erfolgen:
<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>
Dieser Code erhöht schrittweise einen Zähler, bis ein Stapelüberlauf auftritt. Der abgefangene Fehler ermöglicht es Ihnen, die maximale Stapelgröße des Browsers zu bestimmen, was aufschlussreiche Informationen beim Debuggen von Stapelüberlaufproblemen liefern kann.
Das obige ist der detaillierte Inhalt vonWas ist die Größenbeschränkung für den JavaScript-Stack im IE und wie kann ich sie finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!