如何防止“无响应”错误

How to prevent "Not responding" error?

本文关键字:无响应 错误 响应 何防止      更新时间:2023-09-26

我们是一个跟踪软件,我们需要使用Internet Explorer。

function track(url){
    window.setInterval(function (){
        $.getScript("http://" + Math.floor(Math.random() * 1000) + "." + url);
    },1000)
}
track("example.com/track.php");

但是,在 ~15 秒后,Internet Explorer 会停止它并显示"无响应"错误。(在任务管理器中)。我们应该遵循哪种方法来防止这种类型的错误?

这很可能是因为您在脚本加载之间为函数指定了 1 秒的间隔,但 Internet Explorer 加载脚本需要 1 秒以上,因此它在完成第一个之前再次开始加载它,这会导致高资源使用率,因为它使加载在完成之前一个在另一个之上累积。

我不确定您的跟踪是如何工作的,但您可以通过使用 setTimeout 而不是 setInterval 来避免这种情况,并在完成后再次调用它,或者设置更高的间隔(也许是 10 秒)

区别:

setTimeout() - 在指定时间后执行一次

setInterval() - 以指定的间隔时间永久执行。

例子

-更高的间隔:

window.setInterval(function () {
    $.getScript("http://" + Math.floor(Math.random() * 1000) + "." + url);
}, 10000)

- 使用超时而不是间隔:

window.setTimeout(function () {
    $.getScript("http://" + Math.floor(Math.random() * 1000) + "." + url);
}, 1000)