preloadResponse
只读特性在
FetchEvent
interface returns a
Promise
that resolves to the navigation preload
响应
if navigation preload was triggered or undefined otherwise.
var expectedResponse = fetchEvent.preloadResponse;
A
Promise
解析为
响应
or otherwise to
undefined
.
This code snippet is from the
navigation preload page
。
ServiceWorkerGlobalScope.onfetch
event handler listens for the
fetch
event. When fired, pass a promise that back to the controlled page to
FetchEvent.respondWith()
. This promise resolves to the first matching URL request in the
缓存
object. If no match is found, the code checks for a preloaded response. Else it fetches a response from the network.
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 'preloadResponse' in that specification. |
工作草案 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
preloadResponse
|
Chrome 59 | Edge 18 | Firefox ? | IE 不支持 No | Opera 46 | Safari 不支持 No | WebView Android 59 | Chrome Android 59 | Firefox Android ? | Opera Android 43 | Safari iOS 不支持 No | Samsung Internet Android 7.0 |
完整支持
不支持
兼容性未知
实验。期望将来行为有所改变。
FetchEvent
缓存
CacheStorage
Client
Clients
ExtendableEvent
InstallEvent
Navigator.serviceWorker
NotificationEvent
PeriodicSyncEvent
PeriodicSyncManager
PeriodicSyncRegistration
ServiceWorker
ServiceWorkerContainer
ServiceWorkerGlobalScope
ServiceWorkerRegistration
SyncEvent
SyncManager
SyncRegistration
WindowClient