Clients: claim() method
claim() は Clients インターフェイスのメソッドで、アクティブなサービスワーカーが自身のスコープ(scope)内のすべてのクライアントのコントローラー(controller)として自分自身を設定できます。
これにより、このサービスワーカーによって制御されるようになる navigator.serviceWorker の中のクライアントで "controllerchange" イベントが発行されます。
サービスワーカーが最初に登録されると、ページは次に読み込まれるまでそれを使用しません。 claim() メソッドを使用すると、これらのページがすぐに制御されます。 これにより、サービスワーカーがネットワークを介して、または別のサービスワーカーを介して定期的に読み込まれるページを制御することに注意してください。
構文
js
claim()
引数
なし。
返値
undefined に解決される Promise。
例
次の例では、claim() をサービスワーカーの "activate" イベントリスナー内で使用しているため、同じスコープに読み込まれたクライアントは、フェッチがこのサービスワーカーを通過する前に再読み込みする必要がありません。
js
self.addEventListener("activate", (event) => {
event.waitUntil(clients.claim());
});
仕様書
| Specification |
|---|
| Service Workers # clients-claim |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- サービスワーカーの使用
- サービスワーカーのライフサイクル
- サービスワーカーは利用できますか?(英語)
Promisesself.skipWaiting()- サービスワーカーの待機フェーズをスキップする