Clients.claim()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
Метод claim()
интерфейса Clients
позволяет активному сервис-воркеру установить себя контролирующим воркером
для всех клиентских страниц в своей области видимости
. Вызывает событие "controllerchange
" на navigator.serviceWorker
всех клиентских страниц, контролируемых сервис-воркером.
После регистрации сервис-воркера страницы не начнут использовать его, пока не загрузятся вновь. Метод claim()
позволяет установить контроль над страницами немедленно. Имейте в виду, что в этом случае ваш сервис-воркер будет контролировать все загружаемые по сети страницы этого origin, в т. ч. из других сервис-воркеров.
Синтаксис
await clients.claim();
Параметры
Нет.
Результат
Promise
с undefined
.
Пример
В примере ниже внутри обработчика события "activate
" сервис-воркера используется метод claim()
, что позволяет клиентской странице, загруженной в той же области видимости, обходиться без перезагрузки для использования сервис-воркером.
self.addEventListener("activate", (event) => {
event.waitUntil(clients.claim());
});
Спецификации
Specification |
---|
Service Workers # clients-claim |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- Использование Service Worker
- The service worker lifecycle
- Is ServiceWorker ready?
Promises
self.skipWaiting()
— переключайте состояние ожидания сервис-воркера