NavigationPreloadManager
Service Worker API の NavigationPreloadManager
インターフェイスは、サービスワーカーによるリソースのプリロード(事前読み込み)を管理するためのメソッドを提供します。
メソッド
例
ナビゲーションのプリロードの機能を検出して有効化
js
addEventListener("activate", (event) => {
event.waitUntil(
(async function () {
if (self.registration.navigationPreload) {
// ナビゲーションのプリロードを有効にします!
await self.registration.navigationPreload.enable();
}
})(),
);
});
プリロードされたレスポンスの使用
次の例は、プリロードされたレスポンスを使用する fetch イベントの実装を示しています。
js
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);
})(),
);
});
仕様
Specification |
---|
Service Workers # navigation-preload-manager |
ブラウザーの互換性
BCD tables only load in the browser