IE 浏览器 Javascript 堆栈大小限制
IE 浏览器中的 Javascript 堆栈溢出错误可能会阻碍复杂功能的执行。出现此问题的原因是与其他流行浏览器相比,该浏览器的堆栈大小有限。要确定堆栈大小限制,可以执行简单的 HTML 测试:
<code class="html"><head><script> function doSomething(i) { if (i == 0) return -1; doSomething(i-1); } doSomething(3200); </script></head><body></body></code>
在 IE 中,堆栈溢出发生在 3200 左右,而 Firefox 和 Chrome 等浏览器可以处理相当深的递归。
跟踪溢出源
如果发生堆栈溢出,有助于识别导致错误的特定函数。不幸的是,大多数浏览器不提供内置机制来跟踪 JavaScript 堆栈帧。但是,可以使用 try/catch 块来解决此问题:
<code class="javascript">var i = 0; function inc() { i++; inc(); } try { inc(); } catch(e) { // Manual adjustment for StackOverflow sandbox i++; console.log('Maximum stack size is', i, 'in your current browser'); }</code>
此代码逐渐递增计数器,直到发生堆栈溢出。捕获的错误允许您确定浏览器的最大堆栈大小,这可以在调试堆栈溢出问题时提供有洞察力的信息。
以上是IE 中的 JavaScript 堆栈大小限制是多少以及如何找到它?的详细内容。更多信息请关注PHP中文网其他相关文章!