hen*_*ong 5 browser caching header browser-cache http-headers
据我了解,这是浏览器缓存的工作原理.假设一个远期未来的标题被设置为让我们说一年,并且foo.js被设置为缓存.以下是一些场景:
首次访问该页面,服务器返回200并且foo.js缓存一年.
下次访问时,浏览器会检查缓存,但必须检查服务器是否已修改foo.js.如果没有,服务器返回304 - 未修改.
用户已在页面上(并且foo.js在缓存中)单击链接以转到另一个页面,浏览器查看foo.js的缓存版本并在不对服务器进行往返的情况下提供服务并返回200(缓存) ).
用户已经在页面上(并且foo.js在缓存中)并且出于某种原因命中F5/Reload,浏览器检查缓存但是必须往返服务器并检查foo.js是否已被修改.如果没有,服务器返回304.
正如您所看到的,每当刷新页面时,它总是必须访问服务器以检查文件是否已被修改.我知道这不是很多,服务器只会返回标题信息,但在某些情况下往返时间非常重要.
问题是,有没有办法可以避免这种情况,因为我已经设置了文件的到期时间.我只是希望它总是从缓存中获取它,直到到期期满或用其他东西替换文件(通过版本控制).
小智 0
据我了解,按 F5/Ctrl-R 是浏览器特定的操作,因此将控制权留给了浏览器。
如果用户在单击另一个操作之前清除缓存会怎样?因此,即使有 HTTP 规范强制在 F5 中使用缓存,也不能保证您能够实现您的需求。
只需配置和编码即可尽可能缓存,剩下的交给用户即可。
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |