tldr:Firefox中的“脱机工作”与实际脱机不同。不要将其与开发人员工具中的Chrome的“离线”模式相混淆
我刚刚遇到了一个奇怪的问题,由于Firefox和Chrome的行为似乎有所不同,这一事实变得更加奇怪
我遇到了一个错误,服务人员b在激活时不小心清除了站点上所有服务人员的缓存。
该网站在离线状态下无法在Chrome中工作,它正尝试从服务器获取调用中的文件。它确实在Firefox中起作用
我有如下显示缓存内容的代码。
function ShowAllFromCache()
{
console.log("ShowAllFromCache: cache name: " + STARTSW_CACHE)
caches.open(STARTSW_CACHE).then(function (cache)
{
cache.keys().then(function (keys)
{
console.log(keys);
});
});
}
服务工作人员B激活并清除了缓存后,缓存为空,但是在开发人员工具中我可以看到fetch调用说该文件不在缓存中,并且将转到服务器。然后,它说它进行了xhr调用(持续时间为零)以获取文件并成功。它没有碰到服务器
如果我断开了互联网连接,则会收到错误消息:
“损坏的内容错误
位于的站点遇到了无法修复的网络协议冲突。
您试图查看的页面无法显示,因为检测到数据传输错误。”
Chrome在两种情况下均不起作用。
答案 0 :(得分:0)
这是因为Firefox的离线模式与离线不同。例如转到bbc.com,离线,刷新页面。您仍然会看到页面