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()- 跳過服務工作執行緒的等待階段