Chrome: таймауты / интервалы приостановлены на фоновых вкладках?

, я проверял точность setTimeout , используя этот тест . Теперь я заметил, что (как и ожидалось) setTimeout не очень точен, но для большинства устройств не очень точен. Теперь, если я запускаю тест в Chrome и позволяю ему работать на фоновой вкладке (так, переключаясь на другую вкладку и просматриваю ее там), возвращаясь к тесту и проверяя результаты (если тест завершился) они кардинально меняются. Похоже, что таймауты стали намного медленнее. При тестировании в FF4 или IE9 этого не произошло.

Таким образом, похоже, что Chrome приостанавливает или, по крайней мере, замедляет выполнение javascript на вкладке, у которой нет фокуса. Не удалось найти в сети много информации по этой теме. Это означало бы, что мы не можем запускать фоновые задачи, такие как, например, периодическая проверка на сервере с помощью вызовов XHR и setInterval (я подозреваю, что такое же поведение для setInterval , напишет тест, если время со мной).

Кто-нибудь сталкивался с этим? Есть ли способ обхода этой приостановки / замедления? Вы бы назвали это ошибкой, и следует ли мне зарегистрировать это как таковую?

117
задан KooiInc 17 May 2011 в 14:34
поделиться