我正在开发一个广泛使用JavaScript(jQuery)的网站。我经常让IE'停止运行这个脚本?'我尝试关闭浏览器时出现错误对话框。
我猜这个问题发生的原因是网站是一个使用AJAX的网页,所以没有回发来重置IE执行的命令数。
客户端注册表黑客攻击不是一种选择。
有没有人知道解决此错误的方法?
更新:该页面有一个(~10个)间隔计时器,可以间隔30或60秒间隔轮询。
答案 0 :(得分:4)
我也遇到过这个问题,并通过划分连续的DOM执行来克服这个问题。对于这种方法,我使用了setTimeout
函数。完全解决此问题取决于您如何划分连续执行。
答案 1 :(得分:3)
你偶然使用window.onunload处理程序吗?如果这样做,你可能会检查那里没有无限循环。
要检查,请在您的javascript底部执行:
window.onunload = null;
再次测试。
答案 2 :(得分:2)
问题:“停止运行此脚本?”错误
解决方案:您可以说这是一个兼容性问题或错误,因为在Mozilla中运行相同的东西没有任何错误,但它在IE 6,7或8中运行,并显示错误消息“停止运行此脚本”。 Microsoft提供了一个补丁来修复IE中的这个问题。因此,请转到以下链接并下载“Microsoft Fix It”并安装它并重新启动浏览器,您将永远不会看到“停止运行此脚本”错误: http://support.microsoft.com/kb/175500#FixItForMeAlways
答案 3 :(得分:1)
你的代码中只有一些长时间运行的脚本/无限循环。更多细节可能会得到更准确的答案。
如果您的网页使用了大量的时间间隔,那么您需要在离开页面之前取消它们。使用window.onunload清除所有间隔。
答案 4 :(得分:1)
我只是blogged about this并且我认为这是一个非常时尚的解决方案。所以看看吧。如上所述,我的解决方案只是将长时间运行的操作分解为块,但我提供了一个很好的实用程序类来执行此操作。
答案 5 :(得分:0)
也可以考虑将长操作拆分为$(document).ready()和$(window).load()
答案 6 :(得分:0)
我刚刚遇到了一个问题,即jquery选择器过于笼统:例如: $("*")
答案 7 :(得分:0)
就像提到$(“*”)的人一样,尽量不要使用$(this)作为自定义事件的绑定选择器,这会导致我最近的脚本破坏系统的加载时间。