У меня есть фоновый скрипт, который использует команду setInterval для выполнения сетевого запроса на регулярной основе.Расширение Chrome: проверьте, работает ли фоновый скрипт
Мне было интересно, может ли фоновый скрипт обнаруживать, что os переходит в спящий или ждущий режим, так что я могу настроить таймер, отображаемый при возобновлении сценария фона. Я понимаю, что setInterval таймер приостанавливается во время сна на основе этой Ответ: What happens to setTimeout when the computer goes to sleep?
образец кода background.js
set_start_time();
search_set_int = setInterval(function() {
foo();
// Set the Auto Search Start time for the next run
set_start_time();
}, frequency); // Set interval function
var total_time_left_sec = (frequency/1000) - (current_time_unix - start_time_unix)
Благодаря
Возможно, хорошим решением для вашего случая является уменьшение интервала до небольшого количества (например, 1000 мс) и отправлять частые обновления на справочную страницу с оставшимся временем. Например. '// делать работу каждые 60 секунд var осталосьTime = 60; setInterval (функция() {если (--remainedTime <= 0) {Foo(); remainedTime = 60;} chrome.extension.sendMessage ({remainedTime: remainedTime}); }, 1000); ' – Andrey
Благодаря для комментария. Я использую это решение, так как он прост, я думаю, что вопрос Зиг Мандель об использовании setInterval tick для вычисления точного времени истек, является проблемой, хотя я этого не видел. – user2738707