适用范围:桌面 Chrome 的单个网站

适用于网站界面一直停在旧版本、页面提示离线但基础网络正常,或同一网址在另一环境显示不同内容的情况。本文说明的是 Windows、macOS、Linux 桌面 Chrome DevTools;手机 Chrome 界面不能照搬。菜单名采用官方文档英文名称,本文只做资料核对,未声称复现了某个网站故障。

  1. 先保存编辑中的文字和文件,确认离线草稿或待上传内容已经同步;不能确认时,暂不清理站点数据。
  2. 记下完整网址中的协议、主机、端口和路径,以及账号状态。不同账号、实验分组或不同页面地址,也可能看到不同界面。
  3. 在固定网络、固定代理出口下复现。后面的每次对照都保持其他条件一致;不要一边换节点一边清缓存。

第一步:排除开发者工具自身的离线模拟

  1. 在目标页打开 Chrome 菜单 → 更多工具 → 开发者工具。选择 Network 面板;没有看到面板时,可在 DevTools 命令菜单中搜索对应面板。
  2. 确认网络限速下拉框不是 Offline;排查期间使用 No throttling,并记下此前状态。
  3. 观察重新加载后的文档请求和报错。若主要请求连不上、证书报错或要求登录,应先处理实际错误,不急着删除离线存储。

第二步:只做一次 HTTP 缓存对照

  1. 保持 DevTools 打开,在 Network 勾选 Disable cache,然后重新加载页面。该选项的缓存禁用效果以 DevTools 打开为条件。
  2. 记录页面是否变化、主要文档与脚本请求是否成功。完成这一次对照后,恢复 Disable cache 原状态,再进行下一项测试。

Disable cache 用于浏览器 HTTP 缓存对照;它不能被当成“已经清空 Service Worker 的全部 Cache Storage”。同样,无痕窗口正常只表明浏览上下文有差异,账号、扩展和已有站点数据也可能不同。

第三步:确认是否有 Worker,再临时绕过

  1. 打开 Application 面板,可在 DevTools 命令菜单搜索 Show Application。进入 Service workers,查看当前网站有没有注册项、状态和控制范围。没有相关 Worker 时,停止这条分支,不为排查而注册一个。
  2. 若存在与目标页面相关的 Worker,记下状态。在 Service workers 勾选 Bypass for network,重新加载同一页面;这会让请求绕过 Service Worker 交给网络路径。
  3. 比较同一功能是否恢复,随后取消 Bypass for network,重载复测。如果只有绕过时恢复,说明 Worker 处理路径值得继续查,并不等同于已经证明是哪份缓存文件损坏。

Application 的 Cache storage 展示 Cache API 保存的资源;它与 Cookie、Local storage、IndexedDB 分属不同存储。可以查看资源名称和时间线,但不应把“看到缓存”本身当作错误。Service Worker 可以为受控页面拦截请求,其控制范围也必须与实际页面匹配。

对照结果下一步
禁用 HTTP 缓存后恢复把请求差异交给网站维护者,继续确认响应缓存策略
只有 Bypass for network 后恢复检查 Worker 状态、资源缓存与更新流程
两种对照都没有变化核对服务器响应、账号状态、接口错误和实际网址
Application 中出现 waiting先尝试正常更新流程并关闭旧页面客户端

第四步:先正常更新,清理数据放在最后

  1. 优先使用网站自身的更新或重新加载提示。保存工作后关闭该网站所有标签页和独立 Web 应用窗口,再重新打开;按默认生命周期,旧 Worker 不再控制客户端后,等待中的新 Worker 才能激活。
  2. 必要时在 Service workers 点击 Update,触发一次更新检查。若仍 waiting,记录状态;不要把开发用的 Update on reload 长期留作日常修复,也不要在控制台粘贴来源不明的强制激活脚本。
  3. 只有确认数据已同步或已备份、且愿意重新登录和下载离线资源时,再考虑 Application 中 Storage 或 Clear storage 的清理入口。逐项查看它准备删除的类型和当前站点范围,选择需要的项目后才点击 Clear site data。
  4. 若只需注销相关 Worker,可使用该注册项的 Unregister。注销本身不代表所有存储都已删除,也不保证仍打开的页面立即摆脱旧控制;保存工作、关闭相关页面后重新打开再验证。

恢复正常状态并验证结果

  1. 恢复本次改动的 Disable cache、Bypass for network、Offline 或限速设置;若原先是正常联网状态,应回到未绕过、未模拟离线的状态。
  2. 关闭 DevTools,正常打开目标页面,再完成原来失败的操作;保存工作后关闭并再次打开,确认结果能保持。
  3. 如果只有打开 DevTools 或一直勾选绕过才正常,仍未完成修复。记录网址范围、Worker 状态、关键请求的状态码和对照结果,再联系网站维护者。

若需要导出请求记录,先按求助模板脱敏;原始请求可能含 Cookie、授权头和私有 URL。本文的步骤是定位建议,不代表缓存问题一定存在,也不保证能修复服务端未更新的内容。