超出最大调用堆栈大小错误
2022-08-29 22:34:42
我正在使用直接 Web 远程处理 (DWR) JavaScript 库文件,并且仅在 Safari(桌面和 iPad)中收到错误
它说
已超出最大调用堆栈大小。
此错误究竟是什么意思,它是否完全停止处理?
还有浏览器的任何修复(实际上在,它说Safari
iPad Safari
JS:执行超时
我假设这是相同的调用堆栈问题)
我正在使用直接 Web 远程处理 (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);
如果您不小心导入/嵌入了相同的JavaScript文件两次,有时可能会得到这个,值得在检查器的资源选项卡中检查。