Ricevo alcuni problemi di overflow dello stack JavaScript sul lato specifico del browser IE, questo accade all'interno di una libreria di terze parti che effettua alcune chiamate di funzione e per qualche motivo occasionalmente frenano in IE solo a causa di è basso limite di stack.Browser Javascript Limite di dimensioni dello stack
Ho quindi codificato un piccolo test HTML per verificare il limite di dimensioni dello stack per alcuni browser e ho rilevato che IE8 ha effettivamente un limite di stack piccolo rispetto a FF 7 o Chrome 14 in esecuzione su un laptop con sistema operativo Windows 7, 8 GB di RAM:
<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 solleva overflow dello stack quando i valori sono circa 3200, Firefox e Chrome in grado di gestire una ricorsione molto profonda rispetto a IE.
Mi piacerebbe sapere se c'è un modo per legare l'eccezione di overflow dello stack con la funzione Javascript che lo ha generato durante il runtime in IE o in qualsiasi altro browser e se poteva dare allo stacktrace la catena di funzioni nello stack al momento l'errore è stato sollevato.
È una domanda? – BNL
3200 chiamate sono un sacco di spazio di stack. I programmatori Python (beh, quelli che non sono decisi a scrivere parser di discendenza ricorsiva o che sostituiscono loop perfettamente semplici con ricorsione per il resto) vanno d'accordo con un limite di 1000 chiamate. Cosa fai? – delnan
Non è formulato in modo interrogativo, ma l'ultima frase "Mi chiedo se c'è ..." potrebbe essere iniziata con "Ci sono" e si è conclusa con un punto interrogativo, dando una domanda abbastanza diretta. – jball