据我了解,这就是浏览器缓存的工作原理。假设,一个遥远的 future header 已设置为一年,而 foo.js 已设置为缓存。以下是一些场景:
如您所见,无论何时刷新页面,它都必须访问服务器以检查文件是否已被修改。我知道这不是很多,服务器只会返回标题信息,但在某些情况下往返时间非常重要。
问题是,有没有办法可以避免这种情况,因为我已经设置了文件的到期时间。我只是希望它始终从缓存中获取它,直到过期或用其他东西替换文件(通过对其进行版本控制)。
最佳答案
据我了解,按 F5/Ctrl-R 是浏览器特定的操作,因此将控制权留给浏览器。
如果用户在单击另一个操作之前清除缓存怎么办?因此,即使在 F5 中有强制使用缓存的 HTTP 规范,也不能保证您能够满足您的需求。
只需配置和编码以尽可能多地缓存,其余的留给用户。
关于caching - 你能强制浏览器总是获取缓存的文件而不是 304 的往返吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420471/