NavigationPreloadManager
接口的
服务工作者 API
provides methods for managing the preloading of resources with a service worker.
NavigationPreloadManager.enable()
Promise
that resolves.
NavigationPreloadManager.disable()
Promise
that resolves.
NavigationPreloadManager.setHeaderValue()
Service-Worker-Navigation-Preload
header and returns an empty
Promise
.
NavigationPreloadManager.getState()
Promise
that resolves to an object with properties indicating whether preload is enabled and the contents of the
Service-Worker-Navigation-Preload
.
addEventListener('activate', event => {
event.waitUntil(async function() {
if (self.registration.navigationPreload) {
// Enable navigation preloads!
await self.registration.navigationPreload.enable();
}
}());
});
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);
}());
});
| 规范 | 状态 | 注释 |
|---|---|---|
|
服务工作者
The definition of 'NavigationPreloadManager' in that specification. |
工作草案 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
NavigationPreloadManager
|
Chrome 62 | Edge 18 |
Firefox
No
|
IE ? | Opera 49 | Safari ? | WebView Android 62 | Chrome Android 62 |
Firefox Android
No
|
Opera Android 46 | Safari iOS ? | Samsung Internet Android 8.0 |
disable
|
Chrome 62 | Edge 18 |
Firefox
No
|
IE ? | Opera 49 | Safari ? | WebView Android 62 | Chrome Android 62 |
Firefox Android
No
|
Opera Android 46 | Safari iOS ? | Samsung Internet Android 8.0 |
enable
|
Chrome 62 | Edge 18 |
Firefox
No
|
IE ? | Opera 49 | Safari ? | WebView Android 62 | Chrome Android 62 |
Firefox Android
No
|
Opera Android 46 | Safari iOS ? | Samsung Internet Android 8.0 |
getState
|
Chrome 62 | Edge 18 |
Firefox
No
|
IE ? | Opera 49 | Safari ? | WebView Android 62 | Chrome Android 62 |
Firefox Android
No
|
Opera Android 46 | Safari iOS ? | Samsung Internet Android 8.0 |
setHeaderValue
|
Chrome 62 | Edge 18 |
Firefox
No
|
IE ? | Opera 49 | Safari ? | WebView Android 62 | Chrome Android 62 |
Firefox Android
No
|
Opera Android 46 | Safari iOS ? | Samsung Internet Android 8.0 |
完整支持
不支持
兼容性未知
实验。期望将来行为有所改变。
见实现注意事项。
NavigationPreloadManager
缓存
CacheStorage
Client
Clients
ExtendableEvent
FetchEvent
InstallEvent
Navigator.serviceWorker
NotificationEvent
PeriodicSyncEvent
PeriodicSyncManager
PeriodicSyncRegistration
ServiceWorker
ServiceWorkerContainer
ServiceWorkerGlobalScope
ServiceWorkerRegistration
SyncEvent
SyncManager
SyncRegistration
WindowClient