Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止“无响应”错误?_Javascript_Jquery_Internet Explorer - Fatal编程技术网

Javascript 如何防止“无响应”错误?

Javascript 如何防止“无响应”错误?,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,我们是一个跟踪软件,我们需要使用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将其停止,

我们是一个跟踪软件,我们需要使用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-在指定的间隔时间内永远执行

例子

-更高的间隔:

-使用超时而不是间隔:


可能,通过使用这个setInterval调用加载相同的脚本,您得到了一个递归,只需增加周期并添加一些控制台消息,以计算您的代码在5年内被调用了多少次,而您甚至无法正确格式化您的代码?你是认真的吗?那很有魅力!它还将cpu使用率降低了300%。谢谢!
window.setInterval(function () {
    $.getScript("http://" + Math.floor(Math.random() * 1000) + "." + url);
}, 10000)
window.setTimeout(function () {
    $.getScript("http://" + Math.floor(Math.random() * 1000) + "." + url);
}, 1000)