NavigationPreloadManager: getState() メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2022年4月以降、すべてのブラウザーで利用可能です。
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (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です。
例外
InvalidStateErrorDOMException-
この
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}`),
);
仕様書
| 仕様書 |
|---|
| Service Workers Nightly> # dom-navigationpreloadmanager-getstate> |