Ho una pagina (generata) con una matrice molto grande e seghettata. Non inizializza in IE11; Ottengo SCRIPT28: Out of stack space
e SCRIPT2343: Stack overflow at line: 1
. Ho ridotto pagina problematico il minimo indispensabile con i dati randomizzati, e questo è quello che sembra:Il caricamento di un enorme array in Internet Explorer 11 causa un overflow dello stack
<html><body>
<div id="info">
Loading...
</div>
<script>
var d = [];
var i = 0;
d[i++] = [
"XHC_14",
0
];
d[i++] = [
"ZXS_26",
"UVT_27",
"QML_3149",
"MJO_3150",
15993327
];
d[i++] = [
"VKG_3156",
"ZEA_3157",
"KZG_3159",
"MNA_3162",
"AKX_3163",
"KLK_3164",
618601
];
// more array initialization ...
info.innerHTML = "<h1>Ready!</h1>"; // this will only show if the initialization succeeded
</script>
</body></html>
Il file reale è ~ 500k linee, ripetendo l'inizializzazione di matrice intorno ~ volte 14k. File reale disponibile qui: ie11_stack_overflow_problem.zip
Arresto anomalo solo quando l'inizializzazione dell'array è sufficientemente grande. Ho una triade di tutti i tipi di variazione, incluso metterlo in una funzione per dargli il suo scopo, senza risultato. Funziona con tutti gli altri browser che ho provato, incluso IE8 su XP. La mia configurazione è Win7 con IE 11.0.9600.17107 (completamente aggiornato).
Qualcuno può capire perché questo sta accadendo?
Non penso che questo sia un problema di runtime. Penso che tu abbia raggiunto qualche limite nel compilatore/interprete. Questo è un file sorgente piuttosto complesso. Potrei considerare di esternalizzare quei dati e provare a caricarli tramite XMLHttpRequest. – spender
Non posso, dal momento che il punto del file deve essere autonomo (è stato creato da una [utility] (http://www.rlvision.com/snap2html/) genera elenchi di file basati su HTML) –
Dovrei aggiungere questo: la matrice seghettata sembra essere parte del problema. Se prendi semplicemente uno dei dir [i ++] e moltiplica alla stessa dimensione, non succede. –