Clients.claim()

Clients インターフェイスの claim() メソッドを使用すると、アクティブなサービスワーカーが自身のスコープ(scope)内のすべてのクライアントのコントローラー(controller)として自分自身を設定できます。 これにより、このサービスワーカーによって制御されるようになるクライアントの navigator.serviceWorker"controllerchange" イベントがトリガーされます。

サービスワーカーが最初に登録されると、ページは次に読み込まれるまでそれを使用しません。 claim() メソッドを使用すると、これらのページがすぐに制御されます。 これにより、サービスワーカーがネットワークを介して、または別のサービスワーカーを介して定期的に読み込まれるページを制御することに注意してください。

構文

await clients.claim();

パラメーター

なし。

戻り値

undefined に解決される Promise

次の例では、サービスワーカーの "activate" イベントリスナー内で claim() を使用しているため、同じスコープに読み込まれたクライアントは、フェッチがこのサービスワーカーを通過する前に再読み込みする必要がありません。

self.addEventListener('activate', event => {
  event.waitUntil(clients.claim());
});

仕様

仕様 状態 コメント
Service Workers
claim() の定義
草案 初期定義

ブラウザーの互換性

BCD tables only load in the browser

関連情報