このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

ServiceWorkerRegistration

Baseline
広く利用可能
*

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2018年4月以降、すべてのブラウザーで利用可能です。

* この機能の一部は、対応レベルにばらつきがある場合があります。

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

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

ServiceWorkerRegistration は サービスワーカー API のインターフェイスで、サービスワーカー登録を表します。 同じオリジンを共有している 1 つ以上のページを制御するサービスワーカーを登録します。

サービスワーカー登録の存続期間は、対応するサービスワーカークライアントの存続期間内でそれらを表す ServiceWorkerRegistration オブジェクトの存続期間を超えています。 ブラウザーは、アクティブな ServiceWorkerRegistration オブジェクトの永続的なリストを維持します。

EventTarget ServiceWorkerRegistration

インスタンスプロパティ

親インターフェイスである EventTarget から継承したプロパティもあります。

ServiceWorkerRegistration.active 読取専用

状態がアクティブ化中 (activating) またはアクティブ化済み (activated) のサービスワーカーを返します。 これは最初は null に設定されています。 クライアントの URL が登録のスコープ内にある場合、アクティブワーカーは Client を制御します(ServiceWorkerContainer.register を最初に呼び出したときに設定した scope オプション)。

ServiceWorkerRegistration.backgroundFetch 読取専用

バックグラウンドフェッチ操作を管理する BackgroundFetchManager オブジェクトへの参照を返します。

ServiceWorkerRegistration.cookies 読取専用

CookieStoreManager インターフェイスへの参照を返します。これにより、クッキーの変更イベントを登録したり解除したりすることができます。

ServiceWorkerRegistration.index 読取専用

ContentIndex インターフェイスの参照を返し、これによってオフライン表示のコンテンツの索引付けを管理します。

ServiceWorkerRegistration.installing 読取専用

状態がインストール中 (installing) のサービスワーカーを返します。 これは最初は null に設定されています。

ServiceWorkerRegistration.navigationPreload 読取専用

現在のサービスワーカー登録に関連する NavigationPreloadManager のインスタンスを返します。

ServiceWorkerRegistration.paymentManager 読取専用

決済アプリの様々な機能を管理するために使用する、決済アプリの PaymentManager のインスタンスを返します。

ServiceWorkerRegistration.periodicSync 読取専用

PeriodicSyncManager インターフェイスへの参照を返します。これにより、特定の間隔で実行されるタスクを登録することができます。

ServiceWorkerRegistration.pushManager 読取専用

購読申し込み、アクティブな購読の取得、プッシュの許可状況へのアクセスなど、プッシュの購読を管理するための PushManager インターフェイスへの参照を返します。

ServiceWorkerRegistration.scope 読取専用

サービスワーカーの登録範囲、つまりサービスワーカーが制御できる URL の範囲を定義する URL を表す文字列を返します。

ServiceWorkerRegistration.sync 読取専用

バックグラウンド同期プロセスを管理する SyncManager インターフェイスへの参照を返します。

ServiceWorkerRegistration.updateViaCache 読取専用

サービスワーカーや、importScripts() を通じてインポートされたスクリプトを更新しようとする際、ブラウザーが HTTP キャッシュを参照する条件を決定するために使用される設定の値を返します。値は、imports、all、none のいずれかになります。

ServiceWorkerRegistration.waiting 読取専用

状態がインストール済み (installed) のサービスワーカーを返します。 これは最初は null に設定されています。

インスタンスメソッド

親インターフェイスである EventTarget から継承したメソッドもあります。

ServiceWorkerRegistration.getNotifications()

現在のオリジンから、現在のサービスワーカー登録を通じて作成された通知のリストを、作成された順に返します。

ServiceWorkerRegistration.showNotification()

要求したタイトルの通知を表示します。

ServiceWorkerRegistration.unregister()

サービスワーカー登録を解除し、Promise を返します。 サービスワーカーは、登録が解除される前に進行中の操作を完了します。

ServiceWorkerRegistration.update()

サービスワーカーの更新されたバージョンを、キャッシュを調べずに、サーバーでチェックします。

イベント

updatefound

ServiceWorkerRegistration.installing プロパティが新しいサービスワーカーを取得するたびに発生します。

例

この例では、コードはまずブラウザーがサービスワーカーに対応しているかどうかをチェックし、対応している場合はサービスワーカーを登録します。 次に、updatefound リスナーを追加します。 このリスナーでは、サービスワーカー登録を使用して、サービスワーカーの状態のさらなる変更を待ち受けします。 サービスワーカーが最後に登録されてから変更されていない場合、updatefound イベントは発生しません。

js
if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw.js")
    .then((registration) => {
      registration.addEventListener("updatefound", () => {
        // updatefound が発生した場合は、新しいサービスワーカーを
        // インストールしていることを意味します。
        const installingWorker = registration.installing;
        console.log(
          "新しいサービスワーカーをインストールしています:",
          installingWorker,
        );

        // インストール中のサービスワーカーの状態の変更を、
        // installingWorker.onstatechange を介して待ち受けできます
      });
    })
    .catch((error) => {
      console.error(`サービスワーカーの登録に失敗しました: ${error}`);
    });
} else {
  console.error("サービスワーカーに対応していません。");
}

仕様書

仕様書
Service Workers Nightly
# serviceworkerregistration-interface
Push API
# extensions-to-the-serviceworkerregistration-interface

ブラウザーの互換性

関連情報