1. 開発者向けのウェブ技術
  2. Web API
  3. ServiceWorker
  4. ServiceWorker.state

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

View in English Always switch to English

ServiceWorker.state

Baseline 広く利用可能

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

stateServiceWorker インターフェイスの読み取り専用プロパティで、サービスワーカーの現在の状態を表す文字列を返します。読み込みプロパティである は service worker の現在の状態を表す文字列を返します。これは、parsedinstallinginstalledactivatingactivatedredundant の何れかです。

文字列で、以下の値のうちのいずれかを取ります。

"parsed"

サービスワーカーがダウンロードされ、実行可能であることが確認された後の初期状態です。 サービスワーカーがこの状態に更新されることはないので、ServiceWorker.statechange_event の値になることはありません。

"installing"

この状態のサービスワーカーは、インストール中のワーカーとみなされます。この状態の間、ExtendableEvent.waitUntil()install イベントハンドラーの中で呼び出され、渡されたプロミスが正常に解決されるまでインストール中のワーカーを延長することができます。これは主に、コアキャッシュがすべて投入されるまでサービスワーカーがアクティブにならないようにするために使用します。

"installed"

この状態のサービスワーカーは、待機中のワーカーとみなされます。

"activating"

この状態のサービスワーカーは、アクティブワーカーとみなされます。この状態の間、ExtendableEvent.waitUntil()onactivate イベントハンドラーの中で呼び出され、渡されたプロミスが正常に解決されるまでアクティブワーカーを延長させることができます。状態がアクティブになるまで、機能イベントは配信されません。

"activated"

この状態のサービスワーカーは、機能イベントを処理する準備が整ったアクティブワーカーとみなされます。

"redundant"

新しいサービスワーカーが現在のサービスワーカーに置き換わるか、または現在のサービスワーカーがインストールに失敗して破棄される場合です。

このコードスニペットは、サービスワーカーの登録イベントサンプル(ライブデモ)に掲載されています。このコードは、ServiceWorker.state の変化を待ち受け、その値を返しています。

js
let serviceWorker;
if (registration.installing) {
 serviceWorker = registration.installing;
 document.querySelector("#kind").textContent = "installing";
} else if (registration.waiting) {
 serviceWorker = registration.waiting;
 document.querySelector("#kind").textContent = "waiting";
} else if (registration.active) {
 serviceWorker = registration.active;
 document.querySelector("#kind").textContent = "active";
}
if (serviceWorker) {
 logState(serviceWorker.state);
 serviceWorker.addEventListener("statechange", (e) => {
 logState(e.target.state);
 });
}

仕様書

仕様書
Service Workers Nightly
# service-worker-state

ブラウザーの互換性

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /