We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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() の定義
草案 初期定義。

ブラウザー実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 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,