我有一个(生成的)页面,有一个非常大的锯齿状数组.它没有在IE11中初始化;我得到了SCRIPT28:堆栈空间不足和SCRIPT2343:堆栈溢出: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(完全更新).
任何人都可以弄明白为什么会这样吗?