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