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