Clients.claim()
Метод claim() интерфейса Clients позволяет активному сервис-воркеру установить себя контролирующим воркером для всех клиентских страниц в своей области видимости (en-US). Вызывает событие "controllerchange" на navigator.serviceWorker всех клиентских страниц, контролируемых сервис-воркером.
После регистрации сервис-воркера страницы не начнут использовать его, пока не загрузятся вновь. Метод claim() позволяет установить контроль над страницами немедленно. Имейте в виду, что в этом случае ваш сервис-воркер будет контролировать все загружаемые по сети страницы этого origin, в т. ч. из других сервис-воркеров.
Синтаксис
js
await clients.claim();
Параметры
Нет.
Результат
Promise с undefined.
Пример
В примере ниже внутри обработчика события "activate" сервис-воркера используется метод claim(), что позволяет клиентской странице, загруженной в той же области видимости, обходиться без перезагрузки для использования сервис-воркером.
js
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?
Promisesself.skipWaiting()(en-US) — переключайте состояние ожидания сервис-воркера