Выполнение функции может занять больше времени, чем указано в задержке setInterval, по нескольким причинам:
- Сложная функция. 2 Например, если функция сложная, а задержка маленькая. 2
- Блокирующие операторы. 2 Функция может содержать операторы alert, confirm или prompt, которые блокируют поток выполнения. 2
- Занятость браузера. 2 Если запуск функции невозможен из-за занятости браузера, она становится в очередь и выполняется, как только браузер освобождается. 2
- Загрузка процессора. 24 При слишком большой загрузке процессора JavaScript может не успевать обрабатывать таймеры вовремя, и некоторые запуски setInterval будут пропущены. 2
- Неактивная вкладка. 14 Чтобы уменьшить нагрузку с фоновых вкладок, тайм-ауты регулируются до срабатывания не чаще одного раза в секунду. 1
Вызов setInterval не гарантирует реальной задержки между исполнениями. 2