我认为要缓存的内容与chrome开发工具告诉我已缓存的数据量之间似乎存在巨大差异。
我尝试使用工作箱从Firebase存储中缓存图像,以及使用缓存API并拦截提取请求的原始服务工作程序代码。但是,无论我做什么,我总是以这样的https://imgur.com/a/clDBq8f结尾。我的服务工作者代码几乎已从工作箱文档中删除,进行了缓存(尽管结果与原始JS相同)。
workbox.routing.registerRoute(
/.*firebasestorage.googleapis.com.*\/chaptail.appspot.com.*\/Users.*media&token/,
new workbox.strategies.CacheFirst({
cacheName: 'image-cache',
plugins: [
new workbox.expiration.Plugin({
maxEntries: 300,
maxAgeSeconds: 365* 24 * 60 * 60,
})
],
})
);
老实说,我开始觉得Chrome开发人员工具错了,尽管这似乎不太可能。但是,我实在无法接受这样的事实,即它实际上显示的是小于100KB的数据,它显示了100MB的数据。我是在做错什么大事,还是Chrome开发人员的工具弄乱了我?
答案 0 :(得分:1)
这是设计使然。
当您从其他域缓存资产时,SW会将其作为不透明的响应来处理。不透明的响应会限制响应中的某些信息,并通过将其伪装为约7兆左右来隐藏实际大小。