2016-04-27 41 views
1

我试图创建一个简单的时间间隔,但它的工作速度比预期的要慢。我应该每隔100ms就看到一条消息,但是我每隔1秒就会看到一次。我只是不明白什么是错用下面的代码:setInterval()工作比预期慢

var readyWaitElapsed = 0; 
var readyWait = window.setInterval(function(){ 

    readyWaitElapsed += 100; 

    console.log("Elapsed value", readyWaitElapsed); 

    if (readyWaitElapsed >= 1000){ 
    clearInterval(readyWait); 
    console.log("Timeout !"); 
    } 
}, 100); 

当我将其粘贴到浏览器的控制台我只看到“经过值” -message每1秒左右,并调用clearInterval()“超时”至少需要10秒钟才能完成。

有没有人有任何想法?

回答

1

原来我在控制台处于活动状态时在非活动选项卡上运行代码。很显然,当一个选项卡没有激活(不是焦点)时,至少Chrome会减慢间隔和超时执行以节省资源。

这种放缓似乎不是很准确地固定到任何值,所以它也不能被依赖。

+0

感谢您的反馈意见 – Walfrat