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
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
関連情報
- Service worker の使用
- Service Worker のライフサイクル
- ServiceWorker の準備はできていますか?(英語)
Promises
self.skipWaiting()
- サービスワーカーの待機フェーズをスキップする