Chrome Extension - событие onAlarm сработало позже, чем ожидалось - PullRequest
0 голосов
/ 03 мая 2020

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 (), есть ли более эффективный способ инициировать некоторый код через много минут?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...