AJAX缓存本意是为了提高AJAX的效率,减轻服务器的压力;但如果使用不当就有可能导致出现意料之外的结果。如何禁止Ajax的缓存,解决办法有如下几种: 加个随机数: xmlHttp.open("GET", "ajax.asp?now=" + new Date().getTime(), true); 在要异步获取的asp页面中写一段禁止缓存的代码: Response.Buffer =True Response.ExpiresAbsolute =Now() - 1 Response.Expires=0 Response.CacheControl="no-cache" 在ajax发送请求前加上xmlHTTP.setRequestHeader("If-Modified-Since","0");可以禁止缓存 xmlHTTP.open("get", URL, true); xmlHTTP.onreadystatechange = callHTML; xmlHTTP.setRequestHeader("If-Modified-Since","0"); xmlHTTP.send(); AJAX的缓存是由浏览器维持的,对于发向服务器的某个url,ajax仅在第一次请求时与服务器交互信息,之后的请求中,ajax不再向服务器提交请求,而是直接从缓存中提取数据。 有些情况下,我们需要每一次都从服务器得到更新后数据。思路是让每次请求的url都不同,而又不影响正常应用:在url之后加入随机内容。 url=url+"&"+Math.random(); 我们都知道,ajax能提高页面载入的速度的主要原因是通过ajax减少了重复数据的载入,真正做到按需获取,既然如此,我们在写ajax程序的时候不妨送佛送到西,在客户端再做一次缓存,进一步提高数据载入速度。那就是在载入数据的同时将数据缓存在浏览器内存中,一旦数据被载入,只要页面未刷新,该数据就永远的缓存在内存中,当用户再次查看该数据时,则不需要从服务器上去获取数据,极大的降低了服务器的负载和提高了用户的体验。
文章来源 CODETC,欢迎分享,转载请注明地址:
http://www.codetc.com/article-287-1.html
|