--- title: Clients.claim() slug: Web/API/Clients/claim translation_of: Web/API/Clients/claim ---
{{APIRef("Service Worker Clients")}}
Метод claim()
интерфейса {{domxref("Clients")}} позволяет активному сервис-воркеру установить себя {{domxref("ServiceWorkerContainer.controller", "контролирующим воркером")}} для всех клиентских страниц в своей {{domxref("ServiceWorkerRegistration.scope", "области видимости")}}. Вызывает событие "controllerchange
" на {{domxref("ServiceWorkerContainer","navigator.serviceWorker")}} всех клиентских страниц, контролируемых сервис-воркером.
После регистрации сервис-воркера страницы не начнут использовать его, пока не загрузятся вновь. Метод claim()
позволяет установить контроль над страницами немедленно. Имейте в виду, что в этом случае ваш сервис-воркер будет контролировать все загружаемые по сети страницы этого origin, в т. ч. из других сервис-воркеров.
await clients.claim();
Нет.
Promise
с undefined
.
В примере ниже внутри обработчика события "activate
" сервис-воркера используется метод claim()
, что позволяет клиентской странице, загруженной в той же области видимости, обходиться без перезагрузки для использования сервис-воркером.
self.addEventListener('activate', event => { event.waitUntil(clients.claim()); });
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('Service Workers', '#clients', 'Clients')}} | {{Spec2('Service Workers')}} | Initial definition. It is still under development (see issue 414 and issue 423). |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | {{CompatChrome(42.0)}} | {{ CompatGeckoDesktop("44.0") }}[1] | {{CompatNo}} | 24 | {{CompatNo}} |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | {{ CompatGeckoMobile("44.0") }} | {{ CompatVersionUnknown }} | {{CompatNo}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatUnknown}} |
[1] Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR.)