Если интервал 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) Почему это только для более коротких временных интервалов?