如何返回缓存,并显示一条消息指示离线。可以吗?
到目前为止,我收到的代码只是发送回缓存:
const cachedFetch = request => request.method != 'GET' ?
fetch(request) :
caches.open("demo").then(cache =>
cache.match(request).then(resp => {
if(!!resp) {
console.log('cache', request.url)
return resp;// how to send custom message back with resp
} else {
console.log('not in cache', request.url)
return fetch(request).then(response => {
return response
})
}
})
)
self.addEventListener('fetch', event => event.respondWith(
cachedFetch(event.request)
)
)
答案 0 :(得分:0)
服务工作者可以使用postMessage()
通知客户端。另外,该应用还可以独立于Service Worker监听在线/离线事件:
https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/Online_and_offline_events