Javascript:无响应脚本错误
我从Firefox收到一条错误消息“无响应脚本”。此错误是由于我在页面中添加了一些javascript造成的 我想知道这种无响应性是否完全是由代码循环(函数循环调用或无休止的“for循环”)引起的,或者可能还有其他原因 你能帮我调试这些错误吗 谢谢根据: 当JavaScript代码运行的时间超过预定义的时间量时,Firefox将显示一个对话框,显示警告:无响应脚本。此时间由设置dom.max_script_run_time和dom.max_chrome_script_run_time给出。增加这些设置的值将导致警告出现的频率降低,但会破坏其目的:通知您扩展或网站出现问题,以便停止失控脚本 此外: 找到问题的根源 要确定哪个脚本运行时间过长,请单击警告对话框上的停止脚本按钮,然后转到工具错误控制台。错误控制台中的最新错误应标识导致问题的脚本 检查错误控制台应该可以很明显地看出javascript的哪一部分导致了问题。从那里,要么删除有问题的代码片段,要么以不占用资源的方式对其进行更改Javascript:无响应脚本错误,javascript,Javascript,我从Firefox收到一条错误消息“无响应脚本”。此错误是由于我在页面中添加了一些javascript造成的 我想知道这种无响应性是否完全是由代码循环(函数循环调用或无休止的“for循环”)引起的,或者可能还有其他原因 你能帮我调试这些错误吗 谢谢根据: 当JavaScript代码运行的时间超过预定义的时间量时,Firefox将显示一个对话框,显示警告:无响应脚本。此时间由设置dom.max_script_run_time和dom.max_chrome_script_run_time给出。增加这
编辑:如本主题作者的评论中所述,强烈建议用于调试javascript问题。有一个关于使用断点调试复杂的javascript片段的有用视频。避免这种情况的一种方法是用如下超时来包装性能差的代码片段:
setTimeout(function() {
// <YOUR TIME CONSUMING OPERATION GOES HERE>
}, 0);
setTimeout(函数(){
//
}, 0);
这不是一个防弹的解决方案,但在某些情况下它可以解决问题。这个问题的最佳解决方案:,使用异步jQuery插件。我遇到了一个类似的问题,通过将$.each更改为$.eachAsync解决了这个问题
- 首先对代码进行注释,以确定是哪个部分导致了它
- 循环太多:计数器变量名称可能发生冲突,导致变量不断重置,导致无限循环
jslibs
,因为某些方法可能会导致开销。例如,.htm()
vs.innerHTML
我们需要按照以下步骤停止Firefox中的脚本 第一步 启动Mozilla Firefox 步骤2 单击Firefox窗口顶部地址栏中的任意位置,突出显示整个字段 步骤3 键入“about:config”(省略此处和全文中的引号),然后按“Enter”。“这可能会使您的保修无效!”警告消息可能会出现;如果确实如此,请单击“我会小心的,我保证!”按钮打开包含所有Firefox设置的页面 步骤4 在页面顶部的“搜索”框中单击一次,然后键入“dom.max\u script\u run\u time”。设置被定位并显示;它的默认值为10 步骤5 双击设置以打开“输入整数值”窗口 步骤6 键入“0”并单击“确定”将值设置为零。Firefox脚本现在无限期运行,不会抛出任何脚本错误。 步骤7
重新启动Mozilla Firefox。如果您的代码正在等待AJAX回调,而这也可能是一个原因。获取Firebug并学习如何使用它。然后你可以自己调试这些错误。@Patrick我也有同样的问题..你解决了这个问题吗..检查你的服务器端代码中没有调试负载,可能在某个循环中。这就是我的问题——我在PHP中转储了一个大型数据结构。卸下这根绳子就解决了这个问题,嗯。通常,繁重的任务是在一个for循环中完成的。有关如何将具有繁重任务的For循环转换为系统地将控件传递回浏览器的结构的分步说明,请参见此处: