Chrome 网页一直显示旧内容?分清 HTTP 缓存和 Service Worker

网站已经更新,Chrome 里刷新多少次还是旧界面,很多人以为是网络问题。其实多半是缓存层在起作用。用开发者工具定位:

网站已经更新,Chrome 里刷新多少次还是旧界面,很多人以为是网络问题。其实多半是缓存层在起作用。用开发者工具定位:

  1. 按 F12 打开 Network 面板,勾选 Disable cache,再刷新。如果这样就好了,是普通 HTTP 缓存,用 Ctrl+Shift+R 强制刷新即可。
  2. 还是旧的,就看 Network 里请求的 Size 列。显示 “(ServiceWorker)” 说明页面由 Service Worker 返回,根本没去服务器。
  3. 打开 Application → Service Workers,勾选 Update on reload,或者点 Unregister 只注销这个站点的 Worker。
  4. 不要一上来就“清除所有站点数据”。网页版笔记、邮件之类的应用可能有未同步的本地数据,先确认已同步,再在 Application → Storage 里按需清理。
  5. 如果连 Disable cache + 注销 Worker 都没用,再看响应头和服务器本身,可能是 CDN 还没刷新。

完整的定位步骤和恢复方法:https://roxi.cc/swcache26.html

由 Roxi 背后的小团队撰写。


Write a comment