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