首页 > 解决方案 > Javascript:在选项卡处于非活动状态时 setInterval 暂停和跳过

问题描述

如果 setInterval 的时间间隔是 10 毫秒,那么如果选项卡处于非活动状态则它会暂停,但如果设置为 1 秒,那么它不会暂停并在选项卡处于非活动状态时继续计数。这里有些例子:

1秒 -

num = 0;

window.setInterval(function() {
  num = num + 1;
  document.getElementById('counter').innerHTML = num;
}, 1000);
<html>

<head>
</head>

<body>
  <span id="counter">0</span>
</body>

10 毫秒 -

num = 0;

window.setInterval(function() {
  num = num + 1;
  document.getElementById('counter').innerHTML = num;
}, 10);
<html>

<head>
</head>

<body>
  <span id="counter">0</span>
</body>

在计算第二个数字时,它似乎跳过了 80 个数字。为什么是这样?这发生在片段中,如果您是自己制作的,即作为您计算机上的文件。

这与我的计算机的处理能力,或者它的内存,还是什么有关?我对此感到非常困惑,所以任何答案都将不胜感激。

所以,重申一下,我的问题是:

1) 为什么 setInterval 暂停?
2)为什么它在暂停然后重新开始时跳过了80个左右的数字?
3)为什么这只适用于较短的时间间隔?

标签: javascriptsetinterval

解决方案


推荐阅读