如何在 Google Chrome 中强制刷新而不使用缓存?

如何在 Google Chrome 中强制刷新而不使用缓存?

Chrome 是否有与 Firefox 的 Ctrl+F5 刷新功能相同的功能?我似乎找不到。

我昨晚更改了我的 Gravatar,在按 Ctrl+F5 刷新后,我可以在 Firefox 中看到新的 Gravatar,但 Chrome 似乎顽固地保留了旧的 Gravatar。我想我可以手动清除缓存,但如果有键盘命令可以执行此操作,我想知道它是什么(因为这对 Web 开发也很有帮助)。

答案1

Chrome 文档指出Ctrl+F5Shift+F5应该执行“重新加载当前页面,忽略缓存内容”。

如果不起作用,你可以提交错误报告,但看起来还有很多其他人也遇到了同样的问题。

[此问题的现有错误日志] 已作为重复关闭,问题仍然存在:

[问题:94090]

答案2

在打开的开发者工具(Ctrl++或++ )中:ShftII

  1. 选择网络标签
  2. 启用禁用缓存選擇框。
  3. 请勿关闭开发人员工具 - 否则缓存将重新启用。

在此处输入图片描述

答案3

在 Mac 上,它是 Shift+Command+R,或者按住 Shift 并单击重新加载按钮(而不是 Command+R 或常规刷新的正常单击)。

更多细节:

对于 Shift+Command+R,缓存会被忽略,并且资源请求会像不存在缓存一样。

对于 Command+R,Chrome 将向网络服务器发出If-Modified-Since或请求,Etag即使对于实际缓存的内容。对于大多数(如果不是全部)内容,服务器应该响应304 Not Modified。对于大多数(如果不是全部)现代浏览器来说都是如此。

强制依赖缓存的唯一方法(浏览器甚至不需要询问可能的更改)似乎是单击网页上的链接,或按照书签链接,或进入 URL 地址栏并在那里按回车键(Command+L,回车)。

然而:Chrome 中一个长期存在的已知问题,Chrome 强制刷新不会忽略缓存(以及最近重新加载/刷新不刷新)或者实际上是 WebKit 的一个功能,即使重新加载包含的文档,动态插入的子资源也不会重新验证,使得 Chrome 在使用上述方法时不会清除所有相关缓存。一名 Chromium 开发人员解释

开发人员工具的网络选项卡显示了加载的所有资源的瀑布图。右侧有两条垂直线……其中一条在悬停时标记为“加载事件已触发”。此后加载的任何内容都不是页面的正式组成部分(页面可以连续数小时发出请求)[...] 因此它不会通过任何组合的 f5 进行“刷新”。这是设计使然。
[...]
缓存[任何资源的“Load 事件触发”行之前和之后]由响应的 HTTP 标头决定,而不是由发出请求的时间决定。

注意@ChromiumDev 的推文

Chrome DevTools 的“禁用缓存”会使磁盘缓存无效(非常适合开发!),但是...仅当 devtools 可见时才有效。

答案4

这个问题有点老了,但在最新版本的 Chrome 中

  • 打开Developer tools使用F12Ctrl++ShiftI
  • 右键单击“刷新”按钮,然后选择清空缓存并硬重新加载

这将绕过缓存并完全重新加载页面。

文档上说的是Ctrl+F5Shift+F5但不幸的是,到今天为止,这个错误仍然没有解决 :-(

相关内容