Spec-Zone.ru › Web APIs

ServiceWorkerRegistration

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

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

Интерфейс ServiceWorkerRegistration API сервисных рабочих (Service Worker API) представляет регистрацию сервисного рабочего. Вы регистрируете сервисного рабочего для управления одной или несколькими страницами, которые разделяют один и тот же источник.

Срок существования регистрации сервисного рабочего превышает срок существования объектов ServiceWorkerRegistration, которые представляют их в течение срока жизни соответствующих клиентов сервисного рабочего. Браузер поддерживает постоянный список активных объектов ServiceWorkerRegistration.

EventTarget ServiceWorkerRegistration

Свойства экземпляра

Также наследует свойства от своего родительского интерфейса EventTarget.

ServiceWorkerRegistration.active Только для чтения

Возвращает сервисного рабочего, состояние которого activating или activated. Изначально установлено значение null. Активный рабочий будет управлять Client, если URL клиента попадает в область действия регистрации (опция scope установлена при первом вызове ServiceWorkerContainer.register).

ServiceWorkerRegistration.backgroundFetch Только для чтения Экспериментальная

Возвращает ссылку на объект BackgroundFetchManager, который управляет операциями фонового извлечения.

ServiceWorkerRegistration.cookies Только для чтения Экспериментальная

Возвращает ссылку на интерфейс CookieStoreManager, который позволяет подписаться и отписаться от событий изменения куки.

ServiceWorkerRegistration.index Только для чтения Экспериментальная

Возвращает ссылку на интерфейс ContentIndex для управления индексируемым содержимым для просмотра офлайн.

ServiceWorkerRegistration.installing Только для чтения

Возвращает сервисного рабочего, состояние которого installing. Изначально установлено значение null.

ServiceWorkerRegistration.navigationPreload Только для чтения

Возвращает экземпляр NavigationPreloadManager, связанный с текущей регистрацией сервисного рабочего.

ServiceWorkerRegistration.paymentManager Только для чтения Экспериментальная

Возвращает экземпляр PaymentManager приложения для платежей, используемый для управления различными функциями приложения для платежей.

ServiceWorkerRegistration.periodicSync Только для чтения Экспериментальная

Возвращает ссылку на интерфейс PeriodicSyncManager, который позволяет регистрировать задачи для выполнения через определённые интервалы.

ServiceWorkerRegistration.pushManager Только для чтения

Возвращает ссылку на интерфейс PushManager для управления подписками на push-уведомления, включая подписку, получение активной подписки и доступ к статусу разрешения push-уведомлений.

ServiceWorkerRegistration.scope Только для чтения

Возвращает строку, представляющую URL, определяющий область действия регистрации сервисного рабочего; то есть диапазон URL, которыми может управлять сервисный рабочий.

ServiceWorkerRegistration.sync Только для чтения

Возвращает ссылку на интерфейс SyncManager, который управляет процессами фоновой синхронизации.

ServiceWorkerRegistration.updateViaCache Только для чтения

Возвращает значение параметра, определяющего условия, при которых браузер обратится к кэшу HTTP, когда он пытается обновить сервисного рабочего или любые скрипты, импортированные через importScripts(). Может принимать следующие значения: imports, all, или none.

ServiceWorkerRegistration.waiting Только для чтения

Возвращает сервисного рабочего, состояние которого installed. Изначально установлено значение null.

Методы экземпляра

Также наследует методы от своего родительского интерфейса EventTarget.

ServiceWorkerRegistration.getNotifications()

Возвращает список уведомлений в порядке их создания из текущего источника через текущую регистрацию сервисного рабочего.

ServiceWorkerRegistration.showNotification()

Отображает уведомление с запрошенным заголовком.

ServiceWorkerRegistration.unregister()

Отменяет регистрацию сервисного рабочего и возвращает Promise. Сервисный рабочий завершит все текущие операции перед отменением регистрации.

ServiceWorkerRegistration.update()

Проверяет сервер на наличие обновленной версии сервисного рабочего без обращения к кэшам.

События

updatefound

Срабатывает всякий раз, когда свойство ServiceWorkerRegistration.installing получает нового сервисного рабочего.

Примеры

В этом примере код сначала проверяет, поддерживает ли браузер сервисные рабочие, и, если да, регистрирует один. Затем он добавляет слушателя updatefound события, в котором он использует регистрацию сервисного рабочего для отслеживания дальнейших изменений состояния сервисного рабочего. Если состояние сервисного рабочего не изменилось с момента последней регистрации, то событие updatefound не будет вызвано.

if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw.js")
    .then((registration) => {
      registration.addEventListener("updatefound", () => {
        // If updatefound is fired, it means that there's
        // a new service worker being installed.
        const installingWorker = registration.installing;
        console.log(
          "A new service worker is being installed:",
          installingWorker,
        );

        // You can listen for changes to the installing service worker's
        // state via installingWorker.onstatechange
      });
    })
    .catch((error) => {
      console.error(`Service worker registration failed: ${error}`);
    });
} else {
  console.error("Service workers are not supported.");
}

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

Спецификация
Сервисные рабочие
# serviceworkerregistration-interface
Push API
# extensions-to-the-serviceworkerregistration-interface

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
END_OF_DOCUMENT_MARKER
ServiceWorkerRegistration 40 17 44 27 11.1 40 44 27 11.3 4.0 40
active 40 17 44 27 11.1 40 44 27 11.3 4.0 40
backgroundFetch 74 79 Нет 62 Нет 74 Нет 53 Нет 11.0 Нет
cookies 87 87 Нет 73 Нет 87 Нет 62 Нет 14.0 87
getNotifications 40 17 44 27
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
40 44 27
16.4Уведомления поддерживаются в веб-приложениях, сохраненных на главном экране.
4.0 Нет
index Нет Нет Нет Нет Нет 84 Нет 60 Нет 14.0 84
installing 40 17 44 27 11.1 40 44 27 11.3 4.0 40
navigationPreload 59 17 99 46 15.4 59 99 43 15.4 4.0 59
paymentManager 70 79 Нет 57 Нет 70 Нет 49 Нет 10.0 Нет
periodicSync 80 80 Нет 67 Нет 80 Нет 57 Нет 13.0 Нет
pushManager 40 17 44 27
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
40 48 27
16.4Уведомления поддерживаются в веб-приложениях, сохраненных на главном экране.
4.0 Нет
scope 40 17 44 27 11.1 40 44 27 11.3 4.0 40
showNotification 42 17 44 29
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
42 44 29
16.4Уведомления поддерживаются в веб-приложениях, сохраненных на главном экране.
4.0 Нет
sync 49 79 Нет 36 Нет 49 Нет 36 Нет 4.0 Нет
unregister 40 17 44 27 11.1 40 44 27 11.3 4.0 40
update
45["Начиная с Chrome 46, update() возвращает promise, который разрешается с 'undefined', если операция завершилась успешно или не было обновления, и отклоняется, если обновление завершилось неудачно. Если новый worker запустился, но установка завершилась неудачей, promise все равно разрешается.", "До Chrome 48 этот метод всегда обходил кэш браузера. Начиная с Chrome 48, он обходит кэш только тогда, когда прошла проверка предыдущего service worker более двадцати четырех часов назад."]
17 44
32["Начиная с Opera 33, update() возвращает promise, который разрешается с 'undefined', если операция завершилась успешно или не было обновления, и отклоняется, если обновление завершилось неудачно. Если новый worker запустился, но установка завершилась неудачей, promise все равно разрешается.", "До Opera 35 этот метод всегда обходил кэш браузера. Начиная с Opera 35, он обходит кэш только тогда, когда прошла проверка предыдущего service worker более двадцати четырех часов назад."]
11.1
45["Начиная с Chrome Android 46, update() возвращает promise, который разрешается с 'undefined', если операция завершилась успешно или не было обновления, и отклоняется, если обновление завершилось неудачно. Если новый worker запустился, но установка завершилась неудачей, promise все равно разрешается.", "До Chrome Android 48 этот метод всегда обходил кэш браузера. Начиная с Chrome Android 48, он обходит кэш только тогда, когда прошла проверка предыдущего service worker более двадцати четырех часов назад."]
44
32["Начиная с Opera Android 33, update() возвращает promise, который разрешается с 'undefined', если операция завершилась успешно или не было обновления, и отклоняется, если обновление завершилось неудачно. Если новый worker запустился, но установка завершилась неудачей, promise все равно разрешается.", "До Opera Android 35 этот метод всегда обходил кэш браузера. Начиная с Opera Android 35, он обходит кэш только тогда, когда прошла проверка предыдущего service worker более двадцати четырех часов назад."]
11.3
4.0["Начиная с Samsung Internet 5.0, update() возвращает promise, который разрешается с 'undefined', если операция завершилась успешно или не было обновления, и отклоняется, если обновление завершилось неудачно. Если новый worker запустился, но установка завершилась неудачей, promise все равно разрешается.", "До Samsung Internet 5.0 этот метод всегда обходил кэш браузера. Начиная с Samsung Internet 5.0, он обходит кэш только тогда, когда прошла проверка предыдущего service worker более двадцати четырех часов назад."]
45["Начиная с WebView Android 46, update() возвращает promise, который разрешается с 'undefined', если операция завершилась успешно или не было обновления, и отклоняется, если обновление завершилось неудачно. Если новый worker запустился, но установка завершилась неудачей, promise все равно разрешается.", "До WebView Android 48 этот метод всегда обходил кэш браузера. Начиная с WebView Android 48, он обходит кэш только тогда, когда прошла проверка предыдущего service worker более двадцати четырех часов назад."]
updateViaCache 68 18 57 55 11.1 68 57 48 11.3 10.0 68
updatefound_event 40 17 44 27 11.1 40 44 27 11.3 4.0 40
waiting 40 17 44 27 11.1 40 44 27 11.3 4.0 40

См. также

  • Использование Service Workers
  • Базовый пример кода Service workers
  • Использование web workers

© 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/ServiceWorkerRegistration

Spec-Zone.ru

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