目前是否有任何流行的浏览器在缓存* 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的缓存行为。在您要支持的浏览器中加载页面,并确定可以和不可以使用哪些技术来缓存响应。