MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

ServiceWorkerRegistration.update()

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

ServiceWorkerRegistration インターフェースの update メソッドは、service work のアップデートを試行します。 worker の script URL を取得できた場合や新しい worker が現在の worker と byte-by-byte で識別できない場合、新しい worker をインストールします。以前の取得が 24 時間以上前だった場合、worker の取得はいずれかのブラウザーキャッシュをバイパスします。

ノート: この機能は Web Workers で使用できます。

構文

ServiceWorkerRegistration.update();

引数

なし。

戻り値

Void。

次のシンプルな例は、service worker 例を登録して、望むときに service worker を更新できるようにボタンのイベントハンドラを追加しています:

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw-test/sw.js', {scope: 'sw-test'}).then(function(registration) {
    // registration worked
    console.log('Registration succeeded.');
    button.onclick = function() {
      registration.update();
    }
  }).catch(function(error) {
    // registration failed
    console.log('Registration failed with ' + error);
  });
};

仕様

仕様 ステータス コメント
Service Workers
ServiceWorkerRegistration.update() の定義
草案 初期定義。

ブラウザー実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 45.0 [1] [2] 44.0 (44.0)[3] 未サポート ? 未サポート
web worker での利用 未サポート 44.0 (44.0)[3] 未サポート ? 未サポート
機能 Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
基本サポート ? 未サポート 44.0 (44.0) (有) 未サポート ? 未サポート 45.0 [1] [2]
web worker での使用 ? 未サポート (有) ? 未サポート ? 未サポート 45.0 [1] [2]
  • [1] Chrome 46 から、操作が成功した場合や更新がなかった場合、update() は 'undefined' で解決する promise を返します。更新が失敗した場合は reject します。インストールが失敗したが新しい worker が実行される場合、まだ promise が解決されます; 形式的には、例外が発生すべきです。
  • [2] Chrome 48 以前では、このメソッドは常にブラウザーキャッシュをバイパスします。Chrome 48 から, worker の取得が 24 時間以上前だった場合のみ、ブラウザーキャッシュをバイパスします。
  • [3] Service workers(と Push)は、Firefox 45 延長サポート版 (ESR)では使用できません。

関連項目

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

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