pir*_*lot 8 firefox service-worker
我工作的一个旅行计划应用程序是用于实现与组合离线支持appcache和localStorage.一旦服务工作者成为可行的选择,我们就开始使用它.转换在Chrome(Chromium,Opera等)中顺利完成,但Firefox(44和45)都存在一些问题:Firefox注册了新的服务工作者,但是从过时的appcache中填充了其范围内的页面.
换句话说,如果你有幸从未偶然发现我们的网站,如果你是第一次在FF 44/45中打开它,你将会得到一个新的闪亮服务工作者,以满足你所有的离线需求.生活是美好的.
但是,如果您在启用Service Worker之前不幸使用Firefox,那么您的appcache中仍然会有我们网站的旧版本.
我可以这样做(尽管我的Mozilla文档的读数告诉我应该在服务工作者控制的范围内忽略appcache)如果只发生一次.遗憾的是,Firefox甚至没有尝试获取清单来检查旧的appcache是否是最新的.如果它确实尝试获取清单,它将收到404,这将使appcache失效(就像在Chrome上一样).我在电线(或服务器端)上看不到类似的东西.
为了加重侮辱,Firefox控制台自豪地宣布:Application Cache API(AppCache)已被弃用,将在未来删除.请考虑使用ServiceWorker进行脱机支持.:-)
简单刷新(F5)确实通过服务工作者加载当前版本的页面.可悲的是,它只能工作一次.在关闭并重新打开选项卡之后,整个舞蹈将重放自己:服务工作者负责范围内的所有页面,但过去具有appcache清单声明的页面除外.
清除appcache(appcache clear在开发人员的控制台中或通过设置UI)确实可以解决问题,但我无法向所有Firefox用户提出建议.
我试图找到一些没有太多运气的Firefox bugzilla.如果有人能找到一个很好的相关问题.目前我们只需要禁用对Firefox的SW支持.
是否有任何方式向Firefox发信号通知它应该在Service Worker范围内忽略旧的appcache?