[英]setInterval JavaScript not working
我正在使用setInterval
的项目中工作。 我已经阅读了一下,但是我不太了解。 发生的事情是它工作正常,但是大约20秒后,它开始变得越来越快,直到它落后于我的电脑为止。
var autorefresh = setInterval(function () {
$('#holder').fadeOut('slow').load('index.php').fadeIn('slow');
}, 5000);
就像我说的那样,这很好,直到开始逐渐变得越来越快。
我不知道您要做什么,但是此代码将要执行的操作是增加并发运行的函数的数量,直到您无法控制为止。 如果一个请求花费的时间超过5秒(如果您有许多要获取高负载的页面,则可能会出现此情况),那么您将随时有一个以上的负载在进行。
编辑:询问者想“每5秒钟刷新一个div”。
之所以不起作用,是因为刷新不是立即进行的,而是需要时间。 但是循环不考虑这一点,并且无论加载花费多长时间,刷新都会每5秒刷新一次。 这意味着,网络在任何时候都可以使用ajax请求和fadeIn
之一进行响应,并且您可能会fadeIn
运行两个fadeIn
。
为了解决这个问题,我们等到了ajax load
和fadeIn
已设置前完成timeOut
另一请求。
var refresh = function() {
$('#holder').fadeOut('slow').load('index.php').fadeIn("slow",
function(){setTimeout(refresh,5000)});
}
refresh();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.