Я использую setTimeout для запуска программы JavaScript, которая будет использовать AJAX для извлечения внешних данных и обновления содержимого страницы один раз каждые 1000 миллисекунд или одну секунду.Почему JavaScript setTimeout отстает на другой вкладке?
Это прекрасно работает, когда вкладка, на которой находится моя веб-страница, находится на переднем крае. Однако, если страница запущена в окне браузера с несколькими вкладками, а пользователь сейчас не находится на этой вкладке, то setTimeout начнет отставать (за одну минуту, вместо того, чтобы обновлять 60 раз, он обновляется всего около 30).
Однако, если веб-страница находится в авангарде окна браузера, находящегося в фоновом режиме, то setTimeout будет продолжать работать с правильной скоростью.
Может кто-нибудь объяснить, почему это происходит, и какие-либо способы решить это?
Это может предоставить ответ для вас: https://developer.mozilla.org/en/docs/Web/API/window.setTimeout#Minimum.2F_maximum_delay_and_timeout_nesting – jeff