Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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
setInterval JavaScript不工作_Javascript_Jquery - Fatal编程技术网

setInterval JavaScript不工作

setInterval JavaScript不工作,javascript,jquery,Javascript,Jquery,我正在做一个使用setInterval的项目。我已经读了一点,但我不能真正理解它。发生的情况是,它工作正常,但大约20秒后,它开始变得越来越快,直到它落后于我的电脑 var autorefresh = setInterval(function () { $('#holder').fadeOut('slow').load('index.php').fadeIn('slow'); }, 5000); 正如我所说,这很好,直到它开始逐渐变得越来越快。我不知道您试图做什么,但这段代码将做的是增

我正在做一个使用setInterval的项目。我已经读了一点,但我不能真正理解它。发生的情况是,它工作正常,但大约20秒后,它开始变得越来越快,直到它落后于我的电脑

var autorefresh = setInterval(function () {
    $('#holder').fadeOut('slow').load('index.php').fadeIn('slow');
}, 5000);

正如我所说,这很好,直到它开始逐渐变得越来越快。

我不知道您试图做什么,但这段代码将做的是增加并发运行函数的数量,直到如您所说,它变得无法管理为止。如果一个请求需要5秒钟以上(如果您有许多页面获取创建高负载,这是可能的),那么您在任何时候都会有多个负载在进行中

编辑:询问者希望每5秒刷新一次div

这不起作用的原因是刷新不是瞬时的,它需要时间。但循环并不尊重这一点,无论加载多长时间,循环都会刷新5秒钟。这意味着,在任何时候,网络可能会响应一个ajax请求和fadeIn,并且您可能会同时运行两个fadeIn

为了解决这个问题,我们等待ajax加载和fadeIn完成,然后再为另一个请求设置超时

var refresh = function() {
    $('#holder').fadeOut('slow').load('index.php').fadeIn("slow",
        function(){setTimeout(refresh,5000)});
}
refresh();

你想做什么?你能告诉我们你想先用这段代码完成什么吗?我用它每5秒刷新一次div,我删除了fadein和fadeout,同样的问题hi@user1926053如果这回答了您的问题,您可以通过单击“勾号”将其标记为正确。您知道加载不会放在fx队列上,而是立即执行吗?