我正在使用DirectWebRemoting(DWR)JavaScript库文件,但只在Safari(桌面和iPad)中出错
上面说
超出了最大调用堆栈大小
这个错误到底意味着什么?它是否完全停止处理
还有Safari浏览器(实际上是在ipadsafari上)的任何修复,它说
JS:执行超时
我假设是相同的调用堆栈问题)
这意味着在代码中的某个地方,您正在调用一个函数,而该函数反过来又调用另一个函数,以此类推,直到达到调用堆栈限制为止
这几乎总是因为递归函数的基本情况没有得到满足
查看堆栈
考虑一下这个代码
(函数a(){
a();
})();
这是经过几次调用后的堆栈
正如您所看到的,调用堆栈一直在增长,直到达到一个极限:浏览器硬编码堆栈大小或内存耗尽
为了修复它,请确保递归函数有一个能够满足的基本情况
(函数a(x){
//以下情况
//这是基本情况。
如果(!x){
回来
}
a(--x);
})(10);