数据缓存
最快的ajax请求就是没有请求。有两种主要的方法可避免发送不必要的请求:
1.在服务端,设置HTTP头信息以确保你的响应会被浏览器缓存。
2.在客户端,把获取到的信息存储到本地,从而避免再次请求。
设置HTTP头信息
如果希望Ajax响应能够被浏览器缓存,那么必须使用GET方式发出请求,但这还不够,还必须在响应中发送正确的HTTP头信息。Expries头信息会告诉浏览器应该缓存响应多久。它的值是一个日期,过期之后,对该URL的任何请求都不再从缓存中获取,而是会重新访问服务器。一个Expires头信息格式如下:
Expires: Mon,28 Jul 2014 23:30:00 GMT
这个Expires头信息告诉浏览器缓存此响应到2014年7月。它对那些从不改变的内容非常有用,比如图片和其他静态数据集
本地数据存储
直接把从服务器接收到的数据储存起来。可以把一个响应文本保存到一个对象中,以URL为键值作为索引。
var localCache = {}; function xhrRequest(url,callback){ //检查此URL的本地储存 if(localCache[url]){ callback.success(localCache[url]); return; } //此URL对应的缓存没找到,则发送请求 var req = createXhrObject(); req.onerror = function(){ callback.error(); }; req.onreadystatechange = function(){ if(req.readyState == 4){ if(req.responseText ==="" || req.status === "404"){ callback.error(); return; } //存储响应文本到本地存储 localCache[url] = req.responseText; callback.success(req.responseText); } }; req.open('GET',url,true); req.send(null); }

浙公网安备 33010602011771号