繁体   English   中英

setInterval JavaScript无法正常工作

[英]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 loadfadeIn已设置前完成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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM