我在 IE 浏览器中遇到了一些客户端 Javascript 堆栈溢出问题,这是在第三方库中发生的,该库进行了一些函数调用,出于某种原因,它们偶尔会在 IE 中刹车,只是因为它的堆栈限制较低。
然后我编写了一个小的测试 HTML 来测试某些浏览器的堆栈大小限制,发现与在 Windows 7 操作系统、8Gb RAM 的笔记本电脑上运行的 FF 7 或 Chrome 14 相比,IE8 实际上有一个小的堆栈限制:
<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>
当值在 3200 左右时 IE 会引发堆栈溢出,如果与 IE 相比,Firefox 和 Chrome 可以处理非常深的递归。
我想知道是否有办法将堆栈溢出异常与在 IE 或任何其他浏览器中运行时引发它的 Javascript 函数联系起来,以及它是否可以在堆栈中提供带有函数链的堆栈跟踪错误被提出。