ServiceWorkerRegistration.update()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

update()ServiceWorkerRegistration インターフェイスのメソッドで、サービスワーカーの更新を試みます。 ワーカーのスクリプト URL を読み取り、新しいワーカーが現在のワーカーとバイト単位で同一でない場合は、新しいワーカーをインストールします。 前回の読み取りが 24 時間以上前であった場合、ワーカーの読み取り時にブラウザーのキャッシュをバイパスします。

メモ: この機能はウェブワーカーで利用できます。

構文

js
update()

引数

なし。

返値

ServiceWorkerRegistration オブジェクトで解決する Promise です。

次の簡単な例では、サービスワーカーの例を登録し、次にイベントハンドラーをボタンに追加して、必要に応じてサービスワーカーを明示的に更新できるようにします。

js
if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw.js", { scope: "/" })
    .then((registration) => {
      // 登録成功
      console.log("登録に成功しました。");
      button.onclick = () => {
        registration.update();
      };
    })
    .catch((error) => {
      // 登録に失敗
      console.log(`登録に失敗しました: ${error}`);
    });
}

仕様書

Specification
Service Workers
# service-worker-registration-update

ブラウザーの互換性

BCD tables only load in the browser

関連情報