Ich bekomme einige clientseitige Probleme mit dem Überlauf von Javascript-Stapeln speziell im IE-Browser. Dies geschieht in einer Bibliothek eines Drittanbieters, die einige Funktionsaufrufe ausführt, und aus irgendeinem Grund bremsen sie gelegentlich im IE nur aufgrund des niedrigen Stapellimits.
Ich habe dann einen kleinen Test-HTML-Code codiert, um die Stapelgrößenbeschränkung für einige Browser zu testen, und festgestellt, dass IE8 im Vergleich zu FF 7 oder Chrome 14, die auf einem Laptop mit Windows 7-Betriebssystem und 8 GB RAM ausgeführt werden, tatsächlich eine kleine Stapelbeschränkung aufweist:
<html>
<body>
<!-- begin Script: -->
<script type="text/javascript">
function doSomething(){
var i = 3200;
doSomethingElse(i);
}
function doSomethingElse(i){
if (i == 0) return -1;
doSomethingElse(i-1);
}
doSomething();
</script>
<!-- END OF PAGE -->
</body>
</html>
IE erhöht den Stapelüberlauf, wenn die Werte bei 3200 liegen. Firefox und Chrome können im Vergleich zum IE eine sehr tiefe Rekursion verarbeiten.
Ich würde gerne wissen, ob es eine Möglichkeit gibt, die Stack-Overflow-Ausnahme mit der Javascript-Funktion zu verknüpfen, die sie zur Laufzeit im IE oder einem anderen Browser ausgelöst hat, und ob sie den Stacktrace mit der Funktionskette im Stack im Moment geben könnte Fehler wurde ausgelöst.