48

文件通常在浏览器的缓存中保存多长时间?我想知道一般人群 - 我需要等待多长时间才能合理地确定大多数人的缓存会重新获取文件?

4

4 回答 4

36

这很大程度上取决于人、浏览器和设置。

浏览器通常会为此任务保留一定数量的磁盘空间,例如 12 MiB。如果用户无限期地停止使用浏览器。如果他/她很少使用浏览器,它将一直持续到到期 - 无论是内部策略还是 HTTP 标头。如果他/她大量使用浏览器,则可能需要 12 分钟甚至更短。

我相信很难说“一般”,因为我有一个网站,其中 50% 的条目来自 Firefox,49% 来自 Opera,而当时 IE 拥有超过 75% 的市场份额。如果您网站的目标受众是大量使用浏览器的用户,那么它可能非常短。另一方面,如果您的网站只是访问过的网站,则几乎永远不会。

于 2010-05-19T22:16:10.897 回答
3

通常文件将保留在缓存中,直到空间用完。有一篇文章描述了一些流行浏览器的默认值: It's Time to Rethink the Default Cache Size of Web Browsers

正如 Maciej 所说,这也是每个人浏览多少的问题。考虑将访问您的站点的用户群,以及您的站点的带宽有多大(如果普通用户从您的站点下载大量内容,他们很可能会很快填满缓存)。

如果需要刷新缓存,您可以强制页面不缓存文件。

于 2010-05-19T22:21:57.170 回答
1

正如其他答案所述,这取决于浏览器设置。但请注意,缓存文件并不一定意味着不会从您的站点获取更改。如果配置为这样做,浏览器将向服务器发送请求,其中包含有关缓存文件日期的详细信息。当没有更改时,服务器然后响应“好的,使用您的缓存 - 这是最新版本”。这个回复很小,很快就发送了。如果服务器版本已更新,则服务器将以新版本响应。

浏览器向服务器发送请求的频率是特定于浏览器的 - 它们可以配置为每次检查更新,每小时一次,每天一次,从不检查或介于两者之间。服务器还可以指定浏览器检查更新的频率。

这只是一个草图 - 它被简化且不完整。有关完整的详细信息,请参阅W3C - HTTP/1.1 缓存

于 2010-05-19T22:32:04.807 回答
0

取决于服务器指定的时间。服务器在响应头中发回参数。他们可以指定 max-age(文件过期前缓存多长时间,以毫秒为单位)或过期日期(文件过期的日期)。如果两者都有,则 max-age 将优先。

于 2013-09-16T06:42:15.853 回答