ServiceWorkerGlobalScope: skipWaiting() メソッド
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.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
メモ: この機能はサービスワーカー内でのみ利用可能です。
skipWaiting()
は ServiceWorkerGlobalScope
インターフェイスのメソッドで、待機しているサービスワーカーがアクティブになるように強制します。
このメソッドは、 Clients.claim()
と併用することで、現在のクライアントと他のすべてのアクティブなクライアントの両方で、元となるサービスワーカーの更新が即座に有効になるようにします。
構文
skipWaiting()
引数
なし。
返値
Promise
で、新しくインストールされたサービスワーカーを起動しようとした後、undefined
で解決します。
例
self.skipWaiting()
はサービスワーカーの実行中、いつでも呼び出すことができますが、新しくインストールされたサービスワーカーが waiting
状態のままである場合にのみ効果があります。したがって、 self.skipWaiting()
は InstallEvent
ハンドラーの内部から呼び出すことが一般的です。
以下の例では、アクティブなサービスワーカーが既にあるかどうかに関係なく、新しくインストールされたサービスワーカーを activating
状態に進行させるようにします。
self.addEventListener("install", (event) => {
// skipWaiting() が返すプロミスは無視しても安全です。
self.skipWaiting();
// event.waitUntil() の内部で、サービスワーカーを
// インストールするために必要な他のアクションを
// 実行することも可能です。
});
仕様書
Specification |
---|
Service Workers # service-worker-global-scope-skipwaiting |
ブラウザーの互換性
BCD tables only load in the browser