发生的事情是在网站的第一次加载时进行的,并且缓存没有遇到任何问题。但是,在刷新(正常重载)时,Fetch事件会遇到问题,并在控制台日志中显示该问题。
未捕获(承诺)TypeError:请求方案“数据”不受支持 在self.addEventListener.e.respondWith.fetch.then.caches.open.then.cache上
我意识到,在重新加载时,它会获取File.SetLastWriteTimeUtc(path, DateTime.UtcNow);
,这会导致控制台日志中的错误。
format data:[<mediatype>][;base64],<data>
我想避免此错误,但我不知道如何。
答案 0 :(得分:0)
一个好的做法是在发送获取请求之前打开缓存,以确保您的缓存存在。如果网络出现故障,您可以回退到缓存响应。以下代码将更新您的缓存:
e.respondWith(
caches.open(cacheName).then(cache => {
cache.match(e.request).then(cacheResponse => {
const networkFetch = fetch(e.request).then(networkResponse => {
cache.put(e.request, networkResponse.clone());
return networkResponse
});
return cacheResponse || networkFetch;
});
}).catch(error => {
console.log('error in cache open: ', error)
})
)