数据缓存

最快的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);
    }

 

posted @ 2013-11-16 14:35  Joy Ho  阅读(150)  评论(0)    收藏  举报