NavigationPreloadManager: getState() メソッド

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.

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

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

getState()NavigationPreloadManager インターフェイスのメソッドで、事前読み込みが有効になっているかどうか、また、どのような値が HTTP ヘッダーの Service-Worker-Navigation-Preload に送信されるかを示すプロパティを持つオブジェクトを返すプロミス (Promise) を返します。

構文

js
getState()

引数

なし。

返値

以下のプロパティを持つオブジェクトで解決するプロミス (Promise) です。

enabled

事前読み込みが有効であれば true、それ以外では false です。

headerValue

事前読み込みされた fetch() に続き、HTTP のヘッダー Service-Worker-Navigation-Preload に送信される値を含む文字列。 これは NavigationPreloadManager.setHeaderValue() を使用して値が変更されない限り、既定値は true です。

例外

InvalidStateError DOMException

この NavigationPreloadManager が属する登録に関連するアクティブなワーカーがない場合。

下記コードは、サービスワーカーが準備完了した時点でリクエストされた現在の状態を示しています。

js
navigator.serviceWorker.ready
  .then((registration) => registration.navigationPreload.getState())
  .then((state) => {
    console.log(state.enabled); // boolean
    console.log(state.headerValue); // string
  })
  .catch((e) =>
    console.error(`NavigationPreloadManager not supported: ${e.message}`),
  );

仕様書

Specification
Service Workers
# dom-navigationpreloadmanager-getstate

ブラウザーの互換性

BCD tables only load in the browser