我使用的是Direct Web Remoting(DWR)JavaScript库文件,只在Safari(桌面和iPad)中出现错误

上面写着

超出了最大调用堆栈大小.

这个错误到底是什么意思,它会完全停止处理吗?

还有任何针对Safari浏览器的修复(它说,实际上是在iPad Safari上)

JS:执行超过了超时时间

我假设这是同一个调用堆栈问题)

推荐答案

这意味着在代码中的某个地方,您正在调用一个函数,而该函数又调用另一个函数,依此类推,直到达到调用堆栈限制.

这几乎总是因为递归函数的基本情况没有得到满足.

查看堆栈

考虑一下这个代码...

(function a() {
    a();
})();

这是经过几次调用后的堆栈...

Web Inspector

正如您所见,调用堆栈一直在增长,直到达到一个极限:浏览器硬编码堆栈大小或内存耗尽.

为了修复它,请确保递归函数有一个能够满足的基本情况...

(function a(x) {
    // The following condition 
    // is the base case.
    if ( ! x) {
        return;
    }
    a(--x);
})(10);

Javascript相关问答推荐

当我使用jQuery时,我的图标显示为[对象对象]

在JavaScript中,如何将请求的回调函数的结果合并到运行的代码中?

为什么使用MAX_SAFE_INTEGER生成随机整数时数字分布不准确?

如何使用JavaScript用等效的功能性HTML替换标记URL格式?

我不知道为什么我的JavaScript没有验证我的表单

是否有方法在OpenWeatherMap API中获取过go 的降水数据?

Angular中计算信号和getter的区别

Rehype将hashtag呈现为URL

如何修复我的js构建表每当我添加一个额外的列作为它的第一列?

为什么当我解析一个promise时,输出处于挂起状态?

我们如何从一个行动中分派行动

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

Chart.js-显示值应该在其中的引用区域

如何将zoom 变换应用到我的d3力有向图?

JavaScript不重定向配置的PATH

使用父标签中的Find函数查找元素

在D3条形图中对具有相同X值的多条记录进行分组

用另一个带有类名的div包装元素

JavaScript将字符串数字转换为整数

用Reaction-RT-Chart创建实时条形图