Spec-Zone.ru › Web APIs

ServiceWorker: свойство state

Базовый Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

Чтение-только свойство state интерфейса ServiceWorker возвращает строку, представляющую текущее состояние сервис-воркера. Оно может принимать следующие значения: parsed, installing, installed, activating, activated, или redundant.

Значение

Строка String, которая может принимать одно из следующих значений:

"parsed"

Начальное состояние сервис-воркера после его загрузки и подтверждения возможности выполнения. Сервис-воркер никогда не обновляется до этого состояния, поэтому это значение никогда не будет результатом события statechange.

"installing"

Сервис-воркер в этом состоянии рассматривается как устанавливаемый. В этом состоянии, ExtendableEvent.waitUntil() можно вызвать внутри обработчика события install, чтобы продлить существование устанавливаемого сервис-воркера до успешного разрешения переданного промиса. Это используется в первую очередь для того, чтобы сервис-воркер не стал активным, пока не будут заполнены все основные кеши.

"installed"

Сервис-воркер в этом состоянии рассматривается как ждущий.

"activating"

Сервис-воркер в этом состоянии рассматривается как активный. В этом состоянии, ExtendableEvent.waitUntil() можно вызвать внутри обработчика события onactivate, чтобы продлить существование активного сервис-воркера до успешного разрешения переданного промиса. Никакие функциональные события не генерируются, пока состояние не станет активным.

"activated"

Сервис-воркер в этом состоянии рассматривается как активный и готов обрабатывать функциональные события.

"redundant"

Новый сервис-воркер заменяет текущий или текущий сервис-воркер отбрасывается из-за ошибки установки.

Примеры

Этот фрагмент кода взят из примера регистрации сервис-воркера (живая демонстрация). Код слушает любые изменения в ServiceWorker.state и возвращает его значение.

let serviceWorker;
if (registration.installing) {
  serviceWorker = registration.installing;
  document.querySelector("#kind").textContent = "installing";
} else if (registration.waiting) {
  serviceWorker = registration.waiting;
  document.querySelector("#kind").textContent = "waiting";
} else if (registration.active) {
  serviceWorker = registration.active;
  document.querySelector("#kind").textContent = "active";
}

if (serviceWorker) {
  logState(serviceWorker.state);
  serviceWorker.addEventListener("statechange", (e) => {
    logState(e.target.state);
  });
}

Спецификации

Спецификация
Сервис-воркеры
# service-worker-state

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
state 40 17 44 27 11.1 40 44 27 11.3 4.0 40

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API