--- title: ServiceWorkerRegistration slug: Web/API/ServiceWorkerRegistration tags: - API - Interface - Offline - Reference - Service Workers - Service worker API - ServiceWorkerRegistration - Workers translation_of: Web/API/ServiceWorkerRegistration ---
Service Worker API の ServiceWorkerRegistration
インターフェイスは、サービスワーカー登録を表します。 あなたは同じオリジンを共有する1つ以上のページを制御するサービスワーカーを登録します。
サービスワーカー登録の存続期間は、対応するサービスワーカークライアントの存続期間内でそれらを表す ServiceWorkerRegistration
オブジェクトの存続期間を超えています。 ブラウザーは、アクティブな ServiceWorkerRegistration
オブジェクトの永続的なリストを維持します。
注: この機能は Web Worker で使用できます。
また、その親インターフェイスである {{domxref("EventTarget")}} からプロパティを実装します。
installing
)のサービスワーカーを返します。 これは最初は null
に設定されています。installed
)のサービスワーカーを返します。 これは最初は null
に設定されています。activating
)またはアクティブ化済み(activated
)のサービスワーカーを返します。 これは最初は null
に設定されています。 クライアントの URL が登録のスコープ内にある場合、アクティブワーカーは {{domxref("ServiceWorkerClient")}} を制御します({{domxref("ServiceWorkerContainer.register")}} を最初に呼び出したときに設定した scope
オプション)。updatefound
のイベントが発生するたびに呼び出される EventListener
のプロパティ。 {{domxref("ServiceWorkerRegistration.installing")}} プロパティが新しいサービスワーカーを取得するたびに発生します。また、その親インターフェースである {{domxref("EventTarget")}} からメソッドを実装します。
この例では、コードはまずブラウザーがサービスワーカーをサポートしているかどうかをチェックし、サポートしている場合はそれを登録します。 次に、updatefound
リスナーを追加します。 このリスナーでは、サービスワーカー登録を使用して、サービスワーカーの状態のさらなる変更をリッスンします。 サービスワーカーが最後に登録されてから変更されていない場合、updatefound
イベントは発生しません。
if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/sw.js') .then(function(registration) { registration.addEventListener('updatefound', function() { // updatefound が発生した場合は、新しいサービスワーカーを // インストールしていることを意味します。 var installingWorker = registration.installing; console.log('新しいサービスワーカーをインストールしています:', installingWorker); // インストール中のサービスワーカーの状態の変更を、 // installingWorker.onstatechange を介してリッスンできます }); }) .catch(function(error) { console.log('サービスワーカーの登録に失敗しました:', error); }); } else { console.log('サービスワーカーをサポートしていません。'); }
仕様 | 状態 | コメント |
---|---|---|
{{SpecName('Service Workers', '#serviceworkerregistration', 'ServiceWorkerRegistration')}} | {{Spec2('Service Workers')}} | 初期定義 |
{{SpecName('Push API', '#dom-serviceworkerregistration-pushmanager', 'PushManager')}} | {{Spec2('Push API')}} | {{domxref("PushManager","pushManager")}} プロパティを追加。 |
{{SpecName('Web Notifications')}} | {{Spec2('Web Notifications')}} | {{domxref("ServiceWorkerRegistration.showNotification()","showNotification()")}} メソッドと {{domxref("ServiceWorkerRegistration.getNotifications()","getNotifications()")}} メソッドを追加。 |
{{SpecName('Background Sync')}} | {{Spec2('Background Sync')}} | {{domxref("ServiceWorkerRegistration.sync","sync")}} プロパティを追加。 |
{{Compat("api.ServiceWorkerRegistration")}}