【发布时间】:2026-02-15 18:50:01
【问题描述】:
你们中的一些人可能已经知道,对于由 XmlHttpRequest 对象发起的请求,Firefox/Chrome 中存在一些缓存问题。这些问题意味着浏览器没有严格遵守规则,也没有去服务器获取新的 XSLT 文件(例如)。响应没有 Expires 标头(出于性能原因,我们不能使用它)。
Firefox 在 XHR 对象“通道”中有附加参数,您将值 Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE 放入其中以显式访问服务器。
Chrome 有类似的东西吗?
让我立即阻止所有建议将时间戳添加为 GET 参数或随机整数值的人 - 我不希望服务器获得不同的 URL 请求。我希望它获取原始 URL。原因是我想保护服务器不会收到太多对简单静态文件的不同请求,并在不需要时向客户端发送太多数据。
如果您使用生成的 GET 参数(如 '?forcenew=12314')点击静态文件,则每次第一次会呈现 200 个响应,并且对于该随机整数值的每个后续请求会呈现 304 个响应。如果目标静态文件与客户端版本相同,我想发出始终返回 304 的请求。这是顺便说一句,Web 浏览器应该如何开箱即用,但 XHR 对象往往根本不去服务器询问文件是否更改。
【问题讨论】:
标签: ajax caching google-chrome xmlhttprequest