AJax技术

解决 Ajax 缓存的小技巧 简明现代魔法

字号+ 作者:H5之家 来源:H5之家 2015-10-01 16:05 我要评论( )

解决 Ajax 缓存的小技巧

简明现代魔法 -> Ajax技术 -> 解决 Ajax 缓存的小技巧

解决 Ajax 缓存的小技巧

2010-02-21

2月18号的时候写了一篇文章Ajax 随机刷新文字,当时程序在 Chrome 和 FireFox 下跑起来了,但是在 IE 下却失效了。当时不知道是什么原因,现在总算弄清了,知道是 IE 缓存的问题。

一个解决办法就是,在 ajax 发送请求前加上下面一条语句:

xmlHTTP.setRequestHeader("If-Modified-Since","0");

也就是类似于这样:

xmlHTTP.open("get", URL, true); xmlHTTP.onreadystatechange = callHTML; xmlHTTP.setRequestHeader("If-Modified-Since","0"); xmlHTTP.send();

现在程序在 IE 下也可以正常运行了。

Web 开发中的缓存问题

一般情况下,浏览器都会缓存已经访问过的页面内容,关于如何禁止浏览器缓存的介绍,在网上到处都有相关的文章,但是,关于浏览器如何利用缓存,如何处理缓存的讲解,却鲜有人谈及。我一直为这个问题所困惑,这个问题也是绝大多数有经验的 Web 开发人员所共同面临的问题,我有些朋友已做过几十个大大小小的 Web 项目,当与他们交流这些问题时,他们虽然也在项目中遇到和解决过这些问题,但由于没有足够的时间和精力来仔细思考这些问题的原因和细节,他们对这些问题始终也是一知半解、含糊不清,而目前又很少关于这些问题的专门和详细讲解。

HttpServlet 类为 If-Modified-Since 请求头和 Last-Modified 头字段的这种应用提供了处理机制,当继承了 HttpServlet 类的 Servlet 程序接收到一个 GET 方式的访问请求时,HttpServlet 中重载的 service 方法在调用 doGet 方法之前,它还将调用 getLastModified 方法,并根据 getLastModified 方法的返回值来决定是否调用 doGet 方法和在响应消息中是否生成 Last-Modified 头字段,具体规则如下:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JQuery实现Ajax加载图片的方法

    JQuery实现Ajax加载图片的方法

    2016-02-24 17:01

  • 判断用户是不是为ajax请求

    判断用户是不是为ajax请求

    2016-02-24 17:00

  • x未开启的解决办法

    x未开启的解决办法

    2016-02-14 13:15

  • Ajax与WEB开发 by alixixi.com

    Ajax与WEB开发 by alixixi.com

    2016-02-11 11:02

网友点评