Я хотел бы написать расширение, которое отображает уведомление на рабочем столе каждый день в указанное время. Имея быстрый взгляд через API для Chrome, похоже, единственный способ сделать это было бы:Отображать уведомление о рабочем столе каждый день в определенное время.
- создать фоновую страницу для моего расширения,
- использовать setInterval() с достаточно низким разрешением, чтобы не налог на CPU (даже 5 минут в порядке),
- при срабатывании интервальных огней, проверьте, не текущее время после необходимого времени,
- убедитесь, что пользователь еще не отобразил уведомление сегодня.
(Детали последнего шага не имеют отношения к моему вопросу, просто добавьте, чтобы показать, что я понимаю, что мне нужно предотвратить «хлопание» извещения).
Это кажется довольно косвенным и потенциально дорогостоящим; есть ли способ обойти это? Требуется ли фоновая страница?
Я полагаю, что я мог бы просто вызвать setTimeout() и только запустить событие один раз (путем вычисления времени между & желаемым временем), а затем вызвать его снова после отображения уведомления. По какой-то причине это звучит более «хрупким», хотя я не уверен, почему ...
Хороший подход - я думаю, что setInterval лучше, потому что когда вы выполняете setTimeout с задержкой дня и перезапуском браузера, уведомление не будет отображаться. – hamczu
Спасибо hamczu, в случае перезапуска браузера я просто перезапустил таймер setInterval, потому что мой фоновая страница снова получит событие DOMContentLoaded. –