From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../ja/web/api/navigationpreloadmanager/index.html | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 files/ja/web/api/navigationpreloadmanager/index.html (limited to 'files/ja/web/api/navigationpreloadmanager') diff --git a/files/ja/web/api/navigationpreloadmanager/index.html b/files/ja/web/api/navigationpreloadmanager/index.html new file mode 100644 index 0000000000..bbc33d0d28 --- /dev/null +++ b/files/ja/web/api/navigationpreloadmanager/index.html @@ -0,0 +1,85 @@ +--- +title: NavigationPreloadManager +slug: Web/API/NavigationPreloadManager +tags: + - API + - Interface + - Navigation + - NavigationPreloadManager + - Offline + - Reference + - Service Workers +translation_of: Web/API/NavigationPreloadManager +--- +

{{APIRef("Service Workers API")}}

+ +

Service Worker APINavigationPreloadManager インターフェイスは、サービスワーカーによるリソースのプリロード(事前読み込み)を管理するためのメソッドを提供します。

+ +

メソッド

+ +
+
{{domxref("NavigationPreloadManager.enable()")}}
+
ナビゲーションのプリロードを有効にし、解決する {{jsxref("Promise")}} を返します。
+
{{domxref("NavigationPreloadManager.disable()")}}
+
ナビゲーションのプリロードを無効にし、解決する {{jsxref("Promise")}} を返します。
+
{{domxref("NavigationPreloadManager.setHeaderValue()")}}
+
Service-Worker-Navigation-Preload ヘッダーの値を設定し、空の {{jsxref("Promise")}} を返します。
+
{{domxref("NavigationPreloadManager.getState()")}}
+
プリロードが有効かどうかと、Service-Worker-Navigation-Preload の内容を示すプロパティを持つオブジェクトに解決する {{jsxref("Promise")}} を返します。
+
+ +

+ +

ナビゲーションのプリロードの機能を検出して有効化

+ +
addEventListener('activate', event => {
+  event.waitUntil(async function() {
+    if (self.registration.navigationPreload) {
+      // ナビゲーションのプリロードを有効にします!
+      await self.registration.navigationPreload.enable();
+    }
+  }());
+});
+
+ +

プリロードされたレスポンスの使用

+ +

次の例は、プリロードされたレスポンスを使用する fetch イベントの実装を示しています。

+ +
addEventListener('fetch', event => {
+  event.respondWith(async function() {
+    // 可能なら、キャッシュから応答します
+    const cachedResponse = await caches.match(event.request);
+    if (cachedResponse) return cachedResponse;
+
+    // それがなく、プリロードされたレスポンスがあれば、それを使用します
+    const response = await event.preloadResponse;
+    if (response) return response;
+
+    // それもなければ、ネットワークを試します。
+    return fetch(event.request);
+  }());
+});
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Service Workers','#navigation-preload-manager','NavigationPreloadManager')}}{{Spec2('Service Workers')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.NavigationPreloadManager")}}

-- cgit v1.2.3-54-g00ecf