当前位置: 首页 > 面试题库 >

哪些浏览器在缓存XMLHTTPRequest响应时遇到问题?

李嘉胜
2023-03-14
问题内容

目前是否有任何流行的浏览器在缓存* XMLHttpRequest响应时是否存在我需要注意的特定问题?

我希望能够在每个页面上包括XMLHttpRequest查询,作为动态加载与页面类型相关的内容(即JSON)或行为(如eval()ed
Javascript)的一种方法,但希望确保资源如果服务器发送了正确的标头,则可以缓存从服务器接收的数据。

我很想阅读这篇文章,其中提到诸如Firefox 1.1之类的浏览器不会缓存通过XMLHTTPRequest获得的任何内容,并且它始终要求完全发送新数据(使用Cache-
Control且不使用If-Modified-Since),无论标题如何由服务器发送。

显然,那篇文章很老-我什至不记得Firefox 1.1。那么对于当前流行的浏览器,我需要考虑哪些因素?当我特别 希望 缓存响应时,有什么窍门吗?

*为了澄清我的问题,通过缓存,我指的是客户端缓存,即服务器发布新鲜度信息(以Cache-Control:max-
age指令或Expires:标头的形式),浏览器html" target="_blank">存储以下内容的副本:缓存中的响应以及到期日期,因此将来可以从浏览器缓存中满足后续页面发出的相同资源的请求,而无需与服务器进行任何联系。所有主要的浏览器都可以对大多数内容正确执行此操作,但是我听说Firefox无法对XMLHttpRequest内容执行此操作。我要问的是,是否有人知道使用XMLHttpRequest时,任何现代浏览器都不根据规范缓存响应的情况?


问题答案:

Mark
Nottingham拥有一组出色的功能测试,这些功能测试演示了浏览器XMLHttpRequest的缓存行为。在您要支持的浏览器中加载页面,并确定可以和不可以使用哪些技术来缓存响应。



 类似资料:
  • 我尝试使用ETAG从api请求缓存json响应。我调用类似http://localhost:3000/api/config的代码,并获取: Thx响应。

  • 我有一个使用assetic的Symfony2应用程序。一切都很好,只是在localhost中,浏览器不会缓存我的资产。 任何想法,为什么以下资产没有得到缓存响应304和毫秒,而是与200响应,需要大约15秒... 响应头 Accep-Ranges bytes Cache-Control max-age=604800 Connection Keve-Alive Content-Encode gzip

  • 问题内容: 我想在javascript /浏览器中启用ajax响应的缓存。 从jquery.ajax docs : 默认情况下,始终发出请求,但浏览器可能会在其缓存之外提供结果。要禁止使用缓存的结果,请将cache设置为false。如果自上次请求以来未修改资产,则导致请求报告失败,请将ifModified设置为true。 但是,这些地址都没有强制缓存。 动机: 我想在我的初始化函数中放入调用,其中

  • 问题内容: 早上好,我在生产环境中有一个Web应用程序。用户每天都在使用它,当我发布更新时,用户回到该Web应用程序时,他会查看该Web应用程序的旧版本。他需要刷新浏览器以加载新版本。我怎么解决这个问题?我每次发布更新时(每周3-4次)都无法告诉数百名用户刷新页面。 问题答案: 一个简单的解决方案是将 代表时间戳或会话ID的查询字符串 添加到文件中。 例如,在我们的春季应用中,我们只需使用: 您也

  • 问题内容: 我已经使用flask建立了一个网站(www.csppdb.com)。有时,当我以一个用户身份登录时,先注销,然后以另一个用户身份登录,我仍然会看到以第一个用户身份登录的页面。刷新页面后,立即解决此问题。如果我没记错的话,我认为这被称为“缓存”。有什么办法可以在站点范围内禁用此功能,以便访问的每个页面都需要重新刷新? 这就像与朋友共享您的计算机。他登录Facebook,然后注销。现在,您

  • 推荐: http://www.cnblogs.com/skynet/archive/2012/11/28/2792503.html 304 Not Modified