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() メソッドを使用すると、これらのページがすぐに制御されます。 これにより、サービスワーカーがネットワークを介して、または別のサービスワーカーを介して定期的に読み込まれるページを制御することに注意してください。

構文

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

関連情報