【问题标题】:Stop running this script停止运行此脚本
【发布时间】:2011-04-14 17:56:52
【问题描述】:

停止运行此脚本?

此页面上的脚本导致 Internet Explorer 运行缓慢。如果它 继续运行,您的计算机可能 变得没有反应。

我相信我们都已经从 IE7(或者更确切地说是 IE7 模式下的 IE8)看到了这条有用且信息丰富的错误消息。我需要一些帮助来删除此消息。

所以,为了我的工作,我需要让我们的网站在 IE7 中运行。显然,我们的一些客户无法升级或使用其他浏览器(公司规定或其他什么)。

无论如何,有问题的页面包含选项卡(使用 jQueryUI)。页面加载后,jQuery 使用 AJAX 加载每个选项卡的数据;使用队列一个一个地加载选项卡。在每个选项卡中,都有包含 HTML 和 JavaScript 的“小部件”(对于每个选项卡加载,都有各种脚本标签)。

我在加载选项卡期间收到“慢速脚本”错误。我知道 IE 讨厌脚本不将控制权返回给浏览器。所以,我想知道是否有办法“返回控制”或以某种方式休眠,以便 IE 可以“重置”它的慢脚本计数器。

【问题讨论】:

  • 当 IE9 完全破坏了我为某人制作的完美网站时,我个人完全放弃了对 IE 的支持。
  • @Rafe:很遗憾,我做不到。 “公司”拒绝升级,对此我无能为力。

标签: javascript jquery internet-explorer internet-explorer-7


【解决方案1】:

有人想出了一个主意here

避免在浏览器中出现“脚本耗时过长”(所有浏览器都有某种形式)消息相对简单。您只需确保浏览器知道您没有创建无限循环或递归。最简单的方法是让浏览器在长时间运行的任务之间稍作休息。

那么我们将如何解决这个问题。那么最简单的解决方案是将您的任务分解为多个较小的任务,并在这些任务之间设置一个 setTimeout。该实用程序(请参阅link)就是这样做的

【讨论】:

  • +1,尽管至少在 SO 上总结答案是个好主意
  • 是的,解决了它。我将每个“小部件”的 JavaScript 放在 setTimeout 中,瞧。谢谢。