386

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

重新加载选项

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

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

4

4 回答 4

488

正常重载

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


硬重装

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


空缓存和硬重载

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


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

于 2013-02-19T23:23:16.380 回答
5

This also works in Mac OS X. Open developer tools, and then, on the reload button, either 1. secondary click (right click for right-handed mouse), or 2. long click, aka long press to see the menu.

In addition to this answer, hard reload often causes proxies, content delivery networks and other remote caches to be refreshed.

在此处输入图像描述

于 2017-08-09T09:15:34.013 回答
1

The following method let you clear cache only for the troubled URL. It helped me when I was stuck with http to https redirection cache.

  1. Open Chrome developer tools, in Windows I use F12
  2. Check Preserve log to save the log before redirection
  3. Right click the redirected URL and Clear browser cache

This will clear only the troubled cache without affecting normal cache.

于 2019-01-16T11:11:47.357 回答
1

Here's a reference to the spec - the browser performs one of these actions when a reload is triggered:

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

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

于 2021-04-16T22:42:06.593 回答