Chrome расширение — обновление вкладки по таймеру

Жизненный цикл вкладки Chrome: когда фактически срабатывает перезагрузка

Перезагрузка срабатывает, когда сигнал тревоги Chrome достигает сервисного работника, а не когда скрипт внутри страницы активизируется.

Вкладки спят, отбрасываются и удаляются из-за нехватки памяти. Всплывающие окна закрываются. Таймеры страниц умирают вместе с документом. Auto Refresh Turbo сохраняет расписание в рабочем сервисе расширений и вызывает tabs.reload при срабатывании будильника, поэтому обратный отсчет может пережить всплывающее окно.

Актеры на временной шкале

  • Сервисный работник — владеет состоянием сеанса и следующим сигналом тревоги.
  • chrome.alarms — будит работника по запланированному тике.
  • tabs.reload — выполняет обычную или полную перезагрузку для этого идентификатора вкладки.
  • Всплывающее окно/значок/необязательная фишка на странице — просмотры оставшегося времени; не авторитет

Подробный путь к продукту: как работает автоматическое обновление вкладок.

Один цикл

  1. Вы нажимаете «Старт» с интервалом (фиксированным или произвольным) для вкладки.
  2. Рабочий сохраняет сеанс и включает следующий сигнал тревоги.
  3. Поверхности пользовательского интерфейса показывают оставшееся время
  4. Срабатывает сигнал тревоги → Chrome перезагружает вкладку
  5. Если сеанс продолжается, включается следующая задержка.
  6. Правила расписания, остановка после N, остановка взаимодействия или остановка на подозрительной странице могут приостановить или завершить цикл.

Когда вкладка находится в фоновом режиме

Фоновые вкладки можно регулировать для JavaScript страницы. Это одна из причин, по которой таймер только для сценария контента является слабым базовым циклом. Планирование сигналов тревоги и рабочих процессов предназначено для того, чтобы попытки перезагрузки согласовывались с вашим интервалом, даже если страница не активна — в соответствии с собственными политиками расширения и питания Chrome.

Удаленные и замороженные вкладки

Chrome может удалить вкладку, чтобы освободить память. Более поздняя перезагрузка по-прежнему нацелена на идентификатор вкладки, если сеанс остается действительным; документ загружается свежий. Если вкладка была полностью закрыта, этот сеанс должен завершиться — закрытые вкладки не являются молчаливыми зомби.

Сервисный работник перезагружается

Работники могут спать. Сохраняемые снимки в локальном хранилище помогают восстанавливать сеансы после перезапуска. URL-адреса и интервалы сохраняются для этого пути восстановления, а не для создания продукта с историей просмотров. См. Политику конфиденциальности.

Закрытие всплывающего окна не останавливает сеанс: работник сохраняет будильник, и при повторном открытии всплывающего окна снова должно отображаться оставшееся время. Нажмите «Стоп», когда хотите завершить обновление.

Окна и часы по расписанию

За пределами ежедневного окна сеанс приостанавливается: сигналы тревоги не должны перезагружаться, пока не откроется окно. Это не Стоп. Уточните состояния в приостановленном и остановленном расписании и ежедневном расписании.

После перезагрузки пользовательский интерфейс перемонтируется

Полная перезагрузка создает новый документ. Дополнительный визуальный таймер перемонтируется и повторно синхронизируется с работником. Раннее введение сокращает разрыв; рабочий по-прежнему определяет время следующего пожара.

Что может остановить пожар

  • Запланировать паузу
  • Стоп/стоп-после-N
  • Остановить нажатие/ввод
  • Остановка на подозрительной странице
  • Отсутствуют разрешения или неперезагружаемая схема URL.

Пошаговое руководство: устранение неполадок.

Время на нескольких вкладках

Каждая вкладка имеет свои собственные сигналы тревоги и параметры. Пять вкладок означают пять независимых жизненных циклов — полезно для стен, легко перегрузить один источник, если вы не будете осторожны (ограничения скорости).

Попробуйте

Установите Auto Refresh Turbo, запустите 30-секундный сеанс, закройте всплывающее окно и убедитесь, что вкладка по-прежнему перезагружается по расписанию.

Связанное

Продолжайте исследовать

Интересное