Я проверял точность setTimeout
, используя этот тест .Теперь я заметил, что (как и ожидалось) setTimeout
не очень точен, но для большинства приборов не очень точен.Теперь, если я запускаю тест в Chrome и позволяю ему запускаться на фоновой вкладке (то есть, переключаясь на другую вкладку и просматривая ее там), возвращаясь к тесту и просматривая результаты (если тест завершен), они кардинально меняются.Похоже, тайм-ауты были намного медленнее.Протестировано в FF4 или IE9 этого не произошло.
Таким образом, похоже, что Chrome приостанавливает или, по крайней мере, замедляет выполнение JavaScript на вкладке, которая не имеет фокуса.Не могу найти много в сети на эту тему.Это означало бы, что мы не можем запускать фоновые задачи, такие как, например, периодическая проверка на сервере с использованием вызовов XHR и setInterval
(я подозреваю, что подобное поведение будет наблюдаться для setInterval
, напишет тест, если время у меня).
Кто-нибудь сталкивался с этим?Будет ли обходной путь для этой приостановки / замедления?Вы бы назвали это ошибкой, и я должен подать ее как таковую?