NavigationPreloadManager - Web APIs 编辑
The NavigationPreloadManager
interface of the Service Worker API provides methods for managing the preloading of resources with a service worker.
Methods
NavigationPreloadManager.enable()
- Enables navigation preloading and returns a
Promise
that resolves. NavigationPreloadManager.disable()
- Disables navigation preloading and returns a
Promise
that resolves. NavigationPreloadManager.setHeaderValue()
- Sets the value of the
Service-Worker-Navigation-Preload
header and returns an emptyPromise
. NavigationPreloadManager.getState()
- Returns a
Promise
that resolves to an object with properties indicating whether preload is enabled and the contents of theService-Worker-Navigation-Preload
.
Examples
Feature Detecting and Enabling Navigation Preloading
addEventListener('activate', event => {
event.waitUntil(async function() {
if (self.registration.navigationPreload) {
// Enable navigation preloads!
await self.registration.navigationPreload.enable();
}
}());
});
Using a Preloaded Response
The following example shows the implementation of a fetch event that uses a preloaded response.
addEventListener('fetch', event => {
event.respondWith(async function() {
// Respond from the cache if we can
const cachedResponse = await caches.match(event.request);
if (cachedResponse) return cachedResponse;
// Else, use the preloaded response, if it's there
const response = await event.preloadResponse;
if (response) return response;
// Else try the network.
return fetch(event.request);
}());
});
Specifications
Specification | Status | Comment |
---|---|---|
Service Workers The definition of 'NavigationPreloadManager' in that specification. | Working Draft | Initial definition. |
Browser Compatibility
BCD tables only load in the browser
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论