setInterval() 工作速度比预期慢

setInterval() working slower than expected

我正在尝试创建一个简单的间隔,但它的运行速度比预期的要慢。我应该每 100 毫秒看到一次消息,但我每 1 秒左右看到一次。我只是看不出以下代码有什么问题:

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

  readyWaitElapsed += 100;

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

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

当我将它粘贴到 Chrome 控制台时,我每 1 秒左右只能看到 "Elapsed value" 消息,而 clearInterval() "timeout" 至少需要 10 秒才能完成。

有人知道吗?

原来我是 运行 在控制台处于活动状态时处于非活动选项卡上的代码。 Apparently when a tab is not active (not in focus) at least Chrome slows down interval and timeout execution to save resources.

这种减速似乎并没有非常准确地固定为任何值,因此也不能依赖它。