当前位置: 首页 > 面试题库 >

在Internet Explorer中禁用长时间运行的脚本消息

岑畅
2023-03-14
问题内容

我有一个JavaScript函数,其中包含一个for循环,该循环重复了很多次。
调用此函数后,IE浏览器将显示以下消息:

停止运行此脚本?
此页面上的脚本导致您的Web浏览器运行缓慢。如果继续运行,则您的计算机可能无响应。

我怎样才能解决这个问题?
无论如何,我可以从IE禁用此消息吗?


问题答案:

当InternetExplorer达到一段JavaScript的最大同步指令数时,将显示此消息。默认最大数量为5,000,000条指令,您可以通过编辑注册表在单台计算机上增加此数量。

现在,Internet Explorer跟踪脚本引擎当前页面的已执行脚本语句总数,并在每次启动新脚本执行时重置该值,例如超时或事件处理程序。 当该值超过阈值量时,Internet Explorer将显示一个“长时间运行的脚本”对话框。

对于可能正在查看您的页面的所有用户而言,解决问题的唯一方法是分摊循环使用计时器执行的迭代次数,或重构代码以使其不需要处理那么多指令。

使用计时器打破循环相对简单:

var i=0;
(function () {
    for (; i < 6000000; i++) {
        /*
            Normal processing here
        */

        // Every 100,000 iterations, take a break
        if ( i > 0 && i % 100000 == 0) {
            // Manually increment `i` because we break
            i++;
            // Set a timer for the next iteration 
            window.setTimeout(arguments.callee);
            break;
        }
    }
})();


 类似资料:
  • 问题内容: 我有一个PHP脚本,可能至少需要10秒钟才能运行。我想为用户显示进度。 在执行类中,我有一个随进度(在1-100中)更新的属性和一个方法(其目的应该很明显)。 问题是,如何更新前端的元素以供用户查看? 我认为AJAX是解决方案,但我只是无法解决。我无法到达同一对象实例。 问题答案: 如果您的任务是上载庞大的数据集或在服务器上处理它,则在将进度更新到服务器时,您应考虑采用某种作业架构,在

  • 问题内容: 我今天才开始学习Python。我一直在阅读Byte Python。现在,我有一个涉及时间的Python项目。我在Byte of Python中找不到任何与时间有关的东西,所以我问你: 如何在用户指定的时间内运行块然后中断? 例如(用一些伪代码): 甚至更好: 问题答案: 我建议生成另一个线程,使其成为守护程序线程,然后休眠直到您希望任务终止。例如: 当所有非守护程序线程都退出时,Pyt

  • 问题内容: 我写了Python脚本来处理大量的大文本文件,并且可能 要花费很多时间 。有时,需要停止正在运行的脚本并在以后恢复它。停止脚本的可能原因是程序崩溃,磁盘空间不足或需要执行此操作的其他原因。我想为脚本实现一种“停止/恢复”机制。 在 车站 :脚本退出和保存其当前状态。 在 简历 :剧本开始,但是从最新的保存状态持续 我将使用 pickle 和 信号 模块来实现它。 我将很高兴听到如何以p

  • 问题内容: 我正在用node.js编写游戏服务器,某些操作涉及服务器部分的大量计算。在运行这些计算时,我不想停止接受连接- 当node.js不支持线程时,如何在后台运行它们? 问题答案: 我个人不能保证任何一种,但是如果您热衷于进行工作,那么节点模块页面上列出了针对节点的WebWorkers API的几个独立实现。 : http://github.com/cramforce/node-worker

  • 问题内容: 我有一个“长期运行的”清理行动,我需要执行我的。做这个的最好方式是什么? 如果我使用a 这样做,我将立即返回;但是线程引用发生了什么?我正在寻找有关此处需要了解的任何影响/陷阱/绊网的建议,因为我认为即使活动被销毁,该流程仍将继续存在。 背景: 我在我的应用程序中使用JmDNS。当用户使用完我的应用程序后,我想清理JmDNS实例。我使用类方法进行此操作。但是,此方法需要 5秒钟以上 才

  • 问题内容: 我想编写一个简单的python脚本来完成特定的工作。我花了一些时间从网站链接信息。 在正确的时间单击这些链接的最佳方法是什么?我是否需要计算当前电流与列表中的电流之间的时间间隔并睡眠一会儿? 我真的停留在这一点上,并欢迎任何可能有用的想法。 问题答案: 看一下Python的sched模块。