ServiceWorkerGlobalScope.skipWaiting()

ServiceWorkerGlobalScope.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() の内部で、サービスワーカーを
  // インストールするために必要な他のアクションを
  // 実行することも可能です。
});

仕様書

Specification
Service Workers
# service-worker-global-scope-skipwaiting

ブラウザーの互換性

BCD tables only load in the browser

関連情報