gpt4 book ai didi

caching - 你能强制浏览器总是获取缓存的文件而不是 304 的往返吗?

转载 作者:行者123 更新时间:2023-12-03 17:54:30 24 4
gpt4 key购买 nike

据我了解,这就是浏览器缓存的工作原理。假设,一个遥远的 future header 已设置为一年,而 foo.js 已设置为缓存。以下是一些场景:

  • 第一次访问页面,服务器返回200,foo.js缓存一年。
  • 下次访问时,浏览器会检查缓存,但如果 foo.js 已被修改,则必须检查服务器。如果没有,服务器返回 304 - Not Modified。
  • 用户已经在页面上(并且 foo.js 在缓存中)单击链接转到另一个页面,浏览器查看 foo.js 的缓存版本并提供它,而无需往返服务器并返回 200(缓存)。
  • 用户已经在页面上(并且 foo.js 在缓存中)并且由于某种原因点击 F5/Reload,浏览器检查缓存但必须往返服务器并检查 foo.js 是否已被修改。如果不是,服务器返回 304。

  • 如您所见,无论何时刷新页面,它都必须访问服务器以检查文件是否已被修改。我知道这不是很多,服务器只会返回标题信息,但在某些情况下往返时间非常重要。

    问题是,有没有办法可以避免这种情况,因为我已经设置了文件的到期时间。我只是希望它始终从缓存中获取它,直到过期或用其他东西替换文件(通过对其进行版本控制)。

    最佳答案

    据我了解,按 F5/Ctrl-R 是浏览器特定的操作,因此将控制权留给浏览器。

    如果用户在单击另一个操作之前清除缓存怎么办?因此,即使在 F5 中有强制使用缓存的 HTTP 规范,也不能保证您能够满足您的需求。

    只需配置和编码以尽可能多地缓存,其余的留给用户。

    关于caching - 你能强制浏览器总是获取缓存的文件而不是 304 的往返吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420471/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com