【问题标题】:"Stop running this script?" error“停止运行这个脚本?”错误
【发布时间】:2008-11-17 22:42:33
【问题描述】:

我正在开发一个广泛使用 JavaScript (jQuery) 的网站。我经常收到 IE '停止运行这个脚本?当我尝试关闭浏览器时出现错误对话框。

我猜是因为该站点是使用 AJAX 的单个页面,所以没有回发来重置 IE 执行的命令计数。

客户端注册表黑客不是一种选择。

有人知道解决此错误的方法吗?

更新:该页面有一个数 (~10) 个间隔计时器,它们以 30 或 60 秒的间隔连续轮询。

【问题讨论】:

标签: javascript jquery ajax internet-explorer


【解决方案1】:

我也遇到过这个问题,并通过划分连续的 DOM 执行克服了这个问题。对于这种方法,我使用了setTimeout 函数。解决此问题完全取决于您如何划分连续执行。

【讨论】:

  • setTimeout 是要走的路!在 IE8 中测试并使用超过 5,000 个项目的大型 AJAX 数据集。
【解决方案2】:

您是否偶然使用了 window.onunload 处理程序?如果你这样做了,你可能会检查你那里没有无限循环。

要检查,请在 javascript 底部执行以下操作:

window.onunload = null;

然后再次测试。

【讨论】:

  • 这对我来说不是问题。我只是在页面中运行一个长脚本。
  • @liammclennan 所以,你有一个脚本总是(或几乎总是)运行,但只有在关闭选项卡时才会出现警报?
【解决方案3】:

问题:“停止运行此脚本?”错误

解决方案:您可以说这是兼容性问题或错误,因为相同的东西在 Mozilla 中运行时没有任何错误,但它在 IE 6,7 或 8 中运行时出现错误消息“停止运行此脚本”。 Microsoft 提供了一个补丁来修复 IE 中的这个问题。因此,请转到以下链接并下载“Microsoft Fix It”并安装它并重新启动浏览器,您将永远不会看到“停止运行此脚本”错误: http://support.microsoft.com/kb/175500#FixItForMeAlways

【讨论】:

  • 这并不是真正的解决方案。用户不必为了在浏览器中查看某个网站而安装补丁。只需拨打几个setTimeout 电话即可解决此问题。用户不必安装补丁来修复 Web 开发人员的代码(无意冒犯 Web 开发人员)。
【解决方案4】:

您的代码中只有一些长时间运行的脚本/无限循环。更多细节可能会得到更准确的答案。

如果您的页面使用了很多间隔,那么您需要在离开页面之前取消它们。使用 window.onunload 清除所有间隔。

【讨论】:

    【解决方案5】:

    我只是 blogged about this 并提出了我认为非常时尚的解决方案。所以看看吧。如上所述,我的解决方案只是将长时间运行的操作分解为块,但我提供了一个很好的实用程序类来执行此操作。

    【讨论】:

    • 您的解决方案很有趣。我还没有尝试过,但如果它有效,那么它非常有用。
    【解决方案6】:

    也可以考虑将long操作拆分成$(document).ready()和$(window).load()

    【讨论】:

      【解决方案7】:

      我刚刚遇到了一个过于通用的 jquery 选择器问题:例如$("*")

      【讨论】:

        【解决方案8】:

        就像提到 $("*") 的人一样,尽量不要使用 $(this) 作为自定义事件的绑定选择器,这导致我最近的一个脚本破坏了系统的加载时间。

        【讨论】:

          猜你喜欢
          • 2012-02-18
          • 2011-01-06
          • 1970-01-01
          • 2023-04-05
          • 1970-01-01
          • 2018-02-04
          • 1970-01-01
          • 2021-06-20
          • 1970-01-01
          相关资源
          最近更新 更多