目前流行的浏览器中,是否有特定的问题会影响XMLHttpRequest响应的缓存?我需要注意什么?
我想在每个页面上包含XMLHttpRequest查询作为一种动态加载内容(如JSON)或与页面类型相关的行为(例如eval()JavaScript)的方法,但希望确保如果服务器发送了正确的标头,则可以缓存从服务器接收到的资源。
我担心阅读到这篇文章提到,像Firefox 1.1这样的浏览器不会缓存通过XMLHTTPRequest获取的任何内容,并且它总是请求完全发送新数据(使用Cache-Control和无If-Modified-Since),而不管服务器发送的标头。
显然,那篇文章非常古老 - 我甚至不记得Firefox 1.1; 那么我需要考虑当前流行的浏览器以及是否有任何技巧可以让我特别地希望响应被缓存吗?
为了澄清我的问题,我所指的缓存是客户端缓存,服务器发出新鲜度信息(以Cache-Control: max-age指令或Expires: header形式)并且浏览器将响应的副本存储在其缓存中,同时附带一个到期日期,这样从后续页面发出的相同资源的请求可以从浏览器缓存中满足,而无需与服务器进行任何联系。所有主要浏览器对大多数内容都能正确执行此操作,但我听说Firefox不能对XMLHttpRequest内容执行此操作。我的问题是,是否有人知道当使用XMLHttpRequest时,现代浏览器不按照规范缓存响应的情况。