Clients.claim()

Метод claim() интерфейса Clients позволяет активному сервис-воркеру установить себя контролирующим воркером для всех клиентских страниц в своей области видимости. Вызывает событие "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).

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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 42.0 44.0 (44.0)[1] Нет 24 Нет
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? 44.0 (44.0) (Да) Нет ? Нет ?

[1] Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR.)

Смотри также