我有一个包含非常大的不规则数组的页面(已生成)。在IE11中,它无法初始化:会出现 SCRIPT28: Out of stack space
和 SCRIPT2343: Stack overflow at line: 1
的错误。我已经将出问题的页面减少到最小并加入随机数据,如下所示:
<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>
真实文件有大约500k行,重复了大约14k次数组初始化。真实文件可在此处下载:ie11_stack_overflow_problem.zip 只有当数组初始化足够大时才会崩溃。我尝试了各种变化,包括将其放在函数中以给它自己的作用域,但都没有成功。我测试了所有其他浏览器,包括XP上的IE8都可以正常工作。我的配置是Win7和IE 11.0.9600.17107(完全更新)。
有人能想出为什么会发生这种情况吗?