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

Смотрите также