tl; dr: chrome .alarms.create () отстает примерно на 60000 мс, есть ли альтернативы использованию этого для запуска некоторого кода через определенное количество минут?
I иметь в виду setInterval () и setTimeout (), но в идеале фоновый скрипт должен быть непостоянным.
Привет! Рад, что сделал мой первый пост здесь. Выполнял поиск по сайту, прежде чем задавать этот вопрос:)
Некоторый контекст: Я собираю простое приложение для таймера в форме расширения Google Chrome. Он основан на chrome .alarms.create () и onAlarm ().
Например, если пользователь устанавливает таймер на 25 минут (умножая на 60000 для времени в мс), создается сигнал тревоги, подобный этому :
let alarmID = "timer-complete-alarm";
let target = 25 * 60000 + Date.now();
chrome.alarms.create(alarmID, { when: target });
И зарегистрирован прослушиватель onAlarm:
chrome.alarms.onAlarm.addListener(() => {
// Send notification
});
Проблема: Я тщательно протестировал это расширение, сначала загрузив его без распаковки, и этот метод был точный при проверке по отдельному таймеру. Слушатель onAlarm сработает, войдет в консоль и отправит уведомление. Однако выпущенная версия в Chrome Интернет-магазине отстает примерно на 60000 мс.
Создание будильника с 2-минутной целью Будильник срабатывает через 3 минуты после
В соответствии с документацией это обычно происходит:
Чтобы уменьшить нагрузку на компьютер пользователя, Chrome ограничивает сигналы тревоги не более одного раза в 1 минута но может задержать их на произвольную сумму больше
https://developer.chrome.com/apps/alarms
Мой вопрос: Любые идеи почему у теста нет задержки при распаковке, а также, кроме setInterval () или setTimeout (), есть ли более эффективный способ инициировать некоторый код через много минут?
Спасибо!