我收到了一些客户端JavaScript栈溢出问题特别是在IE浏览器, 这是一个第三方库,使一些函数调用内部,由于某种原因,他们偶尔只是由于制动在IE中发生的事情这是低堆栈限制。浏览器的Javascript堆栈大小限制
然后,我编写了一个小测试HTML来测试一些浏览器的堆栈大小限制,发现IE8实际上与小型堆栈限制相比,在Windows 7操作系统,8Gb RAM的笔记本电脑上运行的FF 7或Chrome 14:
<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引发堆栈溢出时的值是3200左右,Firefox和Chrome会比IE处理了非常深刻的递归。
我想知道是否有办法将堆栈溢出异常与在IE或任何其他浏览器中在运行时引发它的Javascript函数绑定,以及它是否可以在堆栈中为堆栈跟踪提供函数链目前出现错误。
这是一个问题吗? – BNL
3200调用有很多堆栈空间。 Python程序员(当然,那些不愿意编写递归下降解析器或用简单的递归替换完美简单的循环)与1000个调用限制相处得很好。你在做什么? – delnan
这个问题在疑问句模式下并不严谨,但最后一句“我想知道是否有......”可以从“Are there”开始,以问号结束,产生一个相当直接的问题。 – jball