Clients.claim()
Метод 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()
— переключайте состояние ожидания сервис-воркера