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, в т. ч. из других сервис-воркеров.

Синтаксис

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

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