要求Chrome绕过XmlHttpRequest的本地缓存,就像在Firefox中一样吗?

Mil*_*sić 9 ajax caching google-chrome xmlhttprequest

正如你们中的一些人可能已经知道的那样,Firefox/Chrome中存在一些由XmlHttpRequest对象发起的请求的缓存问题.这些问题意味着浏览器不严格遵循规则,也不会转到服务器获取新的XSLT文件(例如).响应没有Expires标头(出于性能原因我们无法使用它).

Firefox在XHR对象"通道"中有附加参数,您可以将值Component.interfaces.nsIRequest.LOAD_BYPASS_CACHE显式转到服务器.

Chrome存在类似的内容吗?

让我立即停止所有建议添加时间戳作为GET参数值或随机整数的人 - 我不希望服务器获得不同的URL请求.我希望它能获得原始网址.原因是我希望保护服务器免于获得太多不同的简单静态文件请求,并在不需要时向客户端发送过多数据.

如果使用生成的GET参数(如'?forcenew = 12314')命中静态文件,则每次第一次呈现200响应,对于该随机整数值的每个后续请求将呈现304.如果目标静态文件与客户端版本相同,我想发出始终返回304的请求.这就是网络浏览器应该如何开箱即用,但XHR对象往往不会去服务器来询问是否更改了文件.

Cod*_*per 2

在我工作的主要项目中,我遇到了同样的问题。我的解决方案不是将随机字符串或时间戳附加到 GET 请求,而是将特定字符串附加到 GET 请求。

如果您有修订号,例如 subversion 修订版或类似的 git/mer 或您正在使用的任何内容,请附加该修订号。静态文件将收到 304 响应,直到发布新版本为止。当新版本发布时,会授予单个 200 响应,然后又会愉快地生成 304 响应。:-)

这还有一个额外的好处,那就是独立于浏览器。

如果您不幸没有修订号,那么请制作一个修订号,并在每次发布时增加它。