我如何返回缓存,并显示一条消息说离线。可能吗?
到目前为止我的代码只是发回缓存:
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)
)
)
最佳答案
Service Worker 可以使用 postMessage()
通知客户。或者,应用程序也可以独立于 Service Worker 监听在线/离线事件:
https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/Online_and_offline_events
关于javascript - 如何从 Service Worker 发送 "offline"消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61682027/