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