浏览器会自动移除Service Worker?Chrome安卓端PWA离线失效排查
Chrome安卓端PWA Service Worker长期离线后失效问题
现象总结
- 新编写的Service Worker仅能稳定工作1-2周,之后离线功能失效,重新联网后恢复正常
- 同一Origin下多站点部署时,曾出现单个Service Worker仍处于活跃状态,但Cache Storage被删除、其他同Origin的Service Worker消失的情况
- 问题仅发生在Chrome安卓端,Firefox桌面端6个月未访问目标PWA仍可正常离线运行,问题无固定触发规律,测试周期长
已完成的排查
- 排除全局站点数据清除:恢复联网后LocalStorage数据完好,站点可正常加载
- 排除Service Worker主动异常操作:问题仅在站点长时间未使用(Service Worker未运行)时出现,排除代码逻辑导致的缓存删除或自行注销
- 手动操作验证:
- 清除Chrome安卓端全局缓存,不会导致PWA离线功能失效
- 手动清除单个PWA的存储与缓存,未复现相同问题
- 规范对照:根据Service Worker规范,
用户代理必须持久保存已注册的Service Worker注册表,除非被显式注销,且注销的Service Worker不会出现在chrome://serviceworker-internals/中,当前现象与规范描述不符
疑问
该问题是否属于Chrome安卓端的Bug?或是浏览器未公开的特性限制?
补充信息
- 测试环境为同一GitHub Pages Origin下的两个PWA项目
- Service Worker基于一款SvelteKit版本化Worker插件的模板开发
内容的提问来源于stack exchange,提问作者Nico
相关产品推荐
相关产品推荐

