当前流行的浏览器是否在缓存 * 我需要注意的 XMLHttpRequest 响应时存在特殊问题?
我希望能够在每个页面上包含 XMLHttpRequest 查询,作为动态加载与页面类型相关的内容(即 JSON)或行为(如 eval()ed Javascript)的方法,但想确保资源如果服务器发送了正确的标头,它从服务器接收到的信息可能会被缓存。
我很担心阅读这篇文章,其中提到诸如 Firefox 1.1 之类的浏览器不会缓存通过 XMLHTTPRequest 获得的任何内容,并且它总是要求完全发送新数据(使用 Cache-Control 并且没有 If-Modified-Since),而不管标头如何由服务器发送。
显然那篇文章已经很老了——我什至不记得有 Firefox 1.1;那么对于当前流行的浏览器,我需要考虑哪些因素?当我特别希望缓存响应时,有什么技巧吗?
**为了澄清我的问题,缓存是指客户端缓存,其中服务器发出新鲜信息(以 Cache-Control: max-age 指令或 Expires: 标头的形式),浏览器存储其缓存中的响应以及到期日期,因此可以从浏览器缓存中满足从后续页面发出的相同资源的未来请求,而无需与服务器进行任何联系。所有主流浏览器都对大多数内容正确执行此操作,但我听说 Firefox 无法对 XMLHttpRequest 内容执行此操作。我要问的是,是否有人知道任何现代浏览器在使用 XMLHttpRequest 时不根据规范缓存响应的情况。*