ServiceWorkerGlobalScope.skipWaiting()

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

ServiceWorkerGlobalScope スコープの ServiceWorkerGlobalScope.skipWaiting() メソッドは、待機している Service Worker がアクティブになるように強制します。

このメソッドは、Clients.claim() と併用することで、現在のクライアントと他のすべてのアクティブなクライアントの両方で、元となる Service Worker の更新が即座に有効になるようにします。

構文

ServiceWorkerGlobalScope.skipWaiting().then(function() {
  //Do something
});

戻り値

Promise

次の例では、登録済みの Service Worker の新しいバージョンでインストールされている既存のものを置き換え、開いているページ上で現在アクティブな worker を入れ替えています。

self.addEventListener('install', function(event) {
  event.waitUntil(self.skipWaiting());
});
self.addEventListener('activate', function(event) {
  event.waitUntil(self.clients.claim());
});

仕様

仕様 ステータス コメント
Service Workers
ServiceWorker の定義
草案 初期定義。

ブラウザー実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 42.0 44.0 (44.0)[1] 未サポート ? 未サポート
機能 Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
基本サポート ? 44.0 (44.0) (有) 未サポート ? 未サポート 42.0

[1] Service worker(と Push)は、Firefox 45 延長サポート版(ESR)では使用できません。

関連項目

ドキュメントのタグと貢献者

このページの貢献者: YuichiNukiyama
最終更新者: YuichiNukiyama,