我使用的是Direct Web Remoting(DWR)JavaScript库文件,只在Safari(桌面和iPad)中出现错误
上面写着
超出了最大调用堆栈大小.
这个错误到底是什么意思,它会完全停止处理吗?
还有任何针对Safari
浏览器的修复(它说,实际上是在iPad Safari
上)
JS:执行超过了超时时间
我假设这是同一个调用堆栈问题)
我使用的是Direct Web Remoting(DWR)JavaScript库文件,只在Safari(桌面和iPad)中出现错误
上面写着
超出了最大调用堆栈大小.
这个错误到底是什么意思,它会完全停止处理吗?
还有任何针对Safari
浏览器的修复(它说,实际上是在iPad Safari
上)
JS:执行超过了超时时间
我假设这是同一个调用堆栈问题)
这意味着在代码中的某个地方,您正在调用一个函数,而该函数又调用另一个函数,依此类推,直到达到调用堆栈限制.
这几乎总是因为递归函数的基本情况没有得到满足.
考虑一下这个代码...
(function a() {
a();
})();
这是经过几次调用后的堆栈...
正如您所见,调用堆栈一直在增长,直到达到一个极限:浏览器硬编码堆栈大小或内存耗尽.
为了修复它,请确保递归函数有一个能够满足的基本情况...
(function a(x) {
// The following condition
// is the base case.
if ( ! x) {
return;
}
a(--x);
})(10);