Клиенты: метод claim()
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.
Примечание: Эта функция доступна только в рабочих процессах.
Метод claim() интерфейса Clients позволяет активному рабочему процессу установить себя в качестве controller для всех клиентов в пределах его scope. Это запускает событие controllerchange на navigator.serviceWorker в любых клиентах, которые попадают под контроль этого рабочего процесса.
Когда рабочий процесс первоначально зарегистрирован, страницы не будут его использовать, пока они не будут загружены повторно. Метод claim() заставляет эти страницы быть управляемыми сразу. Обратите внимание, что это приведет к тому, что ваш рабочий процесс будет управлять страницами, которые обычно загружались через сеть или, возможно, через другой рабочий процесс.
Синтаксис
claim()
Параметры
Нет.
Возвращаемое значение
Объект Promise, который разрешается в undefined.
Примеры
В следующем примере используется claim() внутри обработчика события activate рабочего процесса, чтобы клиенты, загруженные в том же объеме, не нуждались в перезагрузке перед тем, как их запросы будут обработаны этим рабочим процессом.
self.addEventListener("activate", (event) => {
event.waitUntil(clients.claim());
});
Спецификации
| Спецификация |
|---|
| Рабочие процессы # clients-claim |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
claim |
42 | 17 | 44 | 29 | 11.1 | 42 | 44 | 29 | 11.3 | 4.0 | 42 |
См. также
- Использование рабочих процессов
- Жизненный цикл рабочего процесса
-
self.skipWaiting()- пропустить фазу ожидания рабочего процесса
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Clients/claim