最大调用堆栈大小超过错误
|
我正在使用Direct Web Remoting(DWR)JavaScript库文件,并且仅在Safari(台式机和iPad)中出现错误
它说
超出最大呼叫堆栈大小。
该错误的确切含义是什么,它会完全停止处理吗?
也是针对
Safari
浏览器的任何修复(实际上是在iPad Safari
上,
JS:执行超出超时
我假设是相同的调用堆栈问题)
没有找到相关结果
已邀请:
27 个回复
攫怂绵十
这是经过几次调用后的堆栈... 如您所见,调用堆栈会不断增长,直到达到极限:浏览器采用硬编码的堆栈大小或内存耗尽。 为了对其进行修复,请确保您的递归函数具有可以满足的基本情况。
为陡土
授巨
代替:
这使我的Chrome标签冻结,直到页面无响应时甚至没有显示“等待/杀死”对话框。
惜堡沁戚
担每棱绰
,确保已启用
,您将得到类似的内容。 很明显这里是溢出的地方!如果单击
,您将可以在代码中实际看到确切的行号。 您还可以看到可能会有所帮助的时机,也可能会看到红鲱鱼。 如果您实际上找不到问题,则另一个有用的技巧是在您认为问题出处的地方放置很多
语句。上面的上一步可以帮助您。 在Chrome浏览器中,如果您重复输出相同的数据,它将像这样显示,从而更清楚地指出问题所在。在这种情况下,堆栈在最终崩溃之前命中了7152帧:
容淑阔九
包含数百万个条目,太大而无法容纳在堆栈中。
青董据零
这是html代码:
粳饶瓢部
提孺局缎
款去芳尾脊
陷牡彭拈峰
另请参阅:如何增加Node.js中的最大调用堆栈大小
怪酞撩匹
碉罕城爸
问题是type:type-我相信是我们为参数“ type”命名-具有名为type的值变量不是问题。我们将其更改为:
并相应地重写some_function.php-问题已解决。
熊融炭臀陛
错误:
同样在这里:
从Mozilla文档中: 但请注意:以这种方式使用应用程序时,您可能会面临超过 JavaScript引擎的参数长度限制。的后果 应用带有过多参数的函数(请考虑数十个 数千个参数)因引擎而异(JavaScriptCore具有 硬编码参数限制为65536),因为该限制(实际上甚至 未明确说明任何过大堆栈行为的性质)。 一些引擎将引发异常。更有害的是,其他人会 任意限制实际传递给 应用功能。为了说明后一种情况:如果是这样的引擎 限制为四个参数(当然,实际限制是 明显更高),就好像参数5、6、2、3具有 已通过以适用于以上示例,而不是完整示例 数组。 因此,请尝试:
甲车劲
作为功能调用:
漂汀拦
款去芳尾脊
CSS.css
在更正之前,我的代码是:
控制台中的错误: 我通过从div标签中删除
解决了它。
桔适丛
车料
您无法在其父级事件内操纵子级元素事件,因为它会传播给自身,从而进行递归调用,直到引发异常为止。 因此此代码将失败:
您有两种选择可以避免这种情况: 将孩子移到父母的外部。 将stopPropagation函数应用于子元素。
贡炮逗握惫
坍锭嘉韭蓝
诫商
所以我不得不删除孩子路线的线
矾醒忻
括宠
问题被严重创建|| (或)作为babel创建自己的类型检查的部分:
所以删除
使通天塔翻译工作。
纤洞需匪
剃摧庭峨僳
疏腔傻小雹