当前流行的浏览器是否有特殊问题缓存我需要注意的*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时根据规范不缓存响应的情况.*
Mark Nottingham 有一套出色的功能测试,用于演示浏览器XMLHttpRequest缓存行为.在您想要支持的浏览器中加载页面,找出可以使用哪些技术,而不是依赖缓存响应的技术.