Clients: claim() 方法
注意:此功能仅在 Service Workers 中可用。
Clients 接口的 claim() 方法允许一个已激活的服务工作线程将其自身设置为其 scope 内所有客户端的 controller。这会在任何被该服务工作线程控制的客户端上触发 navigator.serviceWorker 的 controllerchange 事件。
当服务工作线程首次注册时,页面在下次加载之前不会使用它。claim() 方法会立即使这些页面被控制。请注意,这会导致您的服务工作线程控制通过网络正常加载的页面,或者可能通过另一个服务工作线程加载的页面。
语法
js
claim()
参数
无。
返回值
一个 Promise,解析为 undefined。
示例
下面的示例在服务工作线程的 activate 事件监听器中使用 claim(),这样同一作用域内加载的客户端就不需要重新加载,其 fetch 请求就会通过此服务工作线程。
js
self.addEventListener("activate", (event) => {
event.waitUntil(clients.claim());
});
规范
| 规范 |
|---|
| Service Workers # clients-claim |
浏览器兼容性
加载中…
另见
- 使用 Service Workers
- 服务工作线程的生命周期
self.skipWaiting()- 跳过服务工作线程的等待阶段