Clients.claim()

Метод claim() интерфейса Clients позволяет активному сервис-воркеру установить себя контролирующим воркером для всех клиентских страниц в своей области видимости (en-US). Вызывает событие "controllerchange" на navigator.serviceWorker всех клиентских страниц, контролируемых сервис-воркером.

После регистрации сервис-воркера страницы не начнут использовать его, пока не загрузятся вновь. Метод claim() позволяет установить контроль над страницами немедленно. Имейте в виду, что в этом случае ваш сервис-воркер будет контролировать все загружаемые по сети страницы этого origin, в т. ч. из других сервис-воркеров.

Синтаксис

await clients.claim();

Параметры

Нет.

Результат

Promise с undefined.

Пример

В примере ниже внутри обработчика события "activate" сервис-воркера используется метод claim(), что позволяет клиентской странице, загруженной в той же области видимости, обходиться без перезагрузки для использования сервис-воркером.

self.addEventListener('activate', event => {
  event.waitUntil(clients.claim());
});

Спецификации

Спецификация Статус Комментарий
Service Workers
Определение 'Clients' в этой спецификации.
Рабочий черновик Initial definition. It is still under development (see issue 414 and issue 423).

Поддержка браузерами

BCD tables only load in the browser

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