我需要加载第三方脚本文件(我没有任何控件),但我想避免挂起页面以防脚本中有无限循环。 我尝试调用javascript文件,只在点击按钮时将其放在更新面板中,但页面仍然挂起。我甚至尝试将它放在iframe中,只是为了将它与其他控件分开,同样的情况也会发生。
一旦它开始执行,是否真的没有办法阻止无限循环?
答案 0 :(得分:1)
您正在尝试为已修复的错误添加处理功能,因此所有发生的情况都会导致您的代码变得更加复杂。
我会相信他们已经制作的修复程序,您可以考虑添加Unit Tests,以便以安全的方式测试错误
修改强> 如果您认为该错误仍然存在,那么您可以创建一个小测试示例(即您的单元测试),以便发送给第三方以期获得更好的修复
答案 1 :(得分:0)
一个 可能的 解决方案可能正在使用Web Worker并在其中运行您的JS代码。过了一会儿,如果没有任何响应,请拨打worker.terminate()
以“杀死”它。
请注意Web工作者有很大的局限性:例如,您无法从Web作业域范围内运行的代码中访问UI元素,并且旧浏览器不支持它。
我不知道网络工作者是否适合您的情况,但这个选项可以 帮助。
答案 2 :(得分:0)
使用debugger;
调试脚本文件。将debugger;
符号放在脚本方法的开头,该方法将在chrome中执行并运行(因为它很容易调试)。单击F12以打开调试器工具。脚本执行将在放置debugger;
的行上停止并逐行调试。
如果脚本正在执行无限循环,则chrome选项卡将崩溃并显示消息“Aw,Snap!”。您可以参考调用堆栈来查找导致问题的方法。