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
) を返します。
構文
getState()
引数
なし。
返値
以下のプロパティを持つオブジェクトで解決するプロミス (Promise
) です。
enabled
-
事前読み込みが有効であれば
true
、それ以外ではfalse
です。 headerValue
-
事前読み込みされた
fetch()
に続き、HTTP のヘッダーService-Worker-Navigation-Preload
に送信される値を含む文字列。 これはNavigationPreloadManager.setHeaderValue()
を使用して値が変更されない限り、既定値はtrue
です。
例外
InvalidStateError
DOMException
-
この
NavigationPreloadManager
が属する登録に関連するアクティブなワーカーがない場合。
例
下記コードは、サービスワーカーが準備完了した時点でリクエストされた現在の状態を示しています。
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