From 34db08799a61981cff90c06bfd3fe7d071d98d2e Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Fri, 23 Aug 2024 23:37:16 +0900 Subject: [PATCH] =?UTF-8?q?2024/07/24=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../getstate/index.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 files/ja/web/api/navigationpreloadmanager/getstate/index.md diff --git a/files/ja/web/api/navigationpreloadmanager/getstate/index.md b/files/ja/web/api/navigationpreloadmanager/getstate/index.md new file mode 100644 index 00000000000000..e5b1e6dc3303f6 --- /dev/null +++ b/files/ja/web/api/navigationpreloadmanager/getstate/index.md @@ -0,0 +1,60 @@ +--- +title: "NavigationPreloadManager: getState() メソッド" +short-title: getState() +slug: Web/API/NavigationPreloadManager/getState +l10n: + sourceCommit: 58ad1df59f2ffb9ecab4e27fe1bdf1eb5a55f89b +--- + +{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}} + +**`getState()`** は {{domxref("NavigationPreloadManager")}} インターフェイスのメソッドで、事前読み込みが有効になっているかどうか、また、どのような値が HTTP ヘッダーの {{HTTPHeader("Service-Worker-Navigation-Preload")}} に送信されるかを示すプロパティを持つオブジェクトを返すプロミス ({{jsxref("Promise")}}) を返します。 + +## 構文 + +```js-nolint +getState() +``` + +### 引数 + +なし。 + +### 返値 + +以下のプロパティを持つオブジェクトで解決するプロミス ({{jsxref("Promise")}}) です。 + +- `enabled` + - : 事前読み込みが有効であれば `true`、それ以外では `false` です。 +- `headerValue` + - : 事前読み込みされた {{domxref("Window/fetch", "fetch()")}} に続き、HTTP のヘッダー `Service-Worker-Navigation-Preload` に送信される値を含む文字列。 + これは {{domxref("NavigationPreloadManager.setHeaderValue()")}} を使用して値が変更されない限り、既定値は `true` です。 + +### 例外 + +- `InvalidStateError` {{domxref("DOMException")}} + - : この {{domxref("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}`), + ); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}}