Chrome中的“Normal Reload”,“Hard Reload”和“Empty Cache and Hard Reload”有什么区别?

时间:2013-02-19 23:05:32

标签: google-chrome google-chrome-devtools browser-cache

我最近在Chrome中发现了这项新功能:

reload options

我可以弄清楚选项1和选项3之间的区别,而选项2可能介于两者之间,但我无法在任何地方找到更精确的信息。

有人知道3个选项中每个选项的确切行为吗?

4 个答案:

答案 0 :(得分:405)

正常重新加载

与按 F5 相同。这将使用缓存,但在页面加载期间重新验证所有内容,查找“304 Not Modified”响应。如果浏览器可以避免重新下载缓存的JavaScript文件,图像,文本文件等,那么它就会。


硬重装

发出请求时,请勿在缓存中使用任何内容。 (等于 SHIFT + F5 无需打开开发者控制台)强制浏览器重新下载每个JavaScript文件,图像,文本文件等。


清空缓存和硬重新载入

显然,如果缓存为空,则必须进行硬重载。这将再次迫使浏览器重新下载所有内容。但是,如果页面通过JavaScript进行任何不属于页面加载的事后下载,那么这些可能仍然使用缓存,这是清空缓存的帮助,因为它确保即使这些也不会使用缓存文件。


注意:此功能仅在开发人员工具处于打开状态时可用。

答案 1 :(得分:3)

这也适用于Mac OS X.打开开发人员工具,然后在重新加载按钮上 1.二次点击(右键单击右手鼠标),或 2.长按,即长按 看菜单。

除了this answer之外,硬重新加载通常会导致代理,内容传送网络和其他远程缓存被刷新。

enter image description here

答案 2 :(得分:0)

以下方法使您仅清除故障URL的缓存。当我停留在http到https重定向缓存中时,它对我有所帮助。

  1. 打开Chrome开发者工具,在Windows中我使用F12
  2. 在重定向之前选中Preserve log以保存日志
  3. 右键单击重定向的URL,然后单击Clear browser cache

这将仅清除有问题的缓存,而不会影响正常的缓存。

答案 3 :(得分:0)

这是对规范的引用 - 浏览器在触发重新加载时执行以下操作之一:

“正常重新加载”执行 HTTP spec 定义的“特定端到端重新验证”或“未指定端到端重新验证”,即使用缓存,但会发生重新验证,使用缓存验证条件(“特定”)或无(“未指定”)。在这两种情况下,都会发生重新验证,因为浏览器将 max-age 标头设置为 0。

另一方面,“硬重新加载”似乎会触发“端到端重新加载”——不允许使用缓存副本。在这种情况下,浏览器设置 Pragma: no-cache 会强制重新加载。