利用它jquery.data,方法缓存数据

发现了个好方法 $.data(element,key,value) 可以缓存数据。

问题描述:比如在页面中操作某种功能,该功能需要ajax提交数据并得到响应结果。如果没有利用缓存,那么在每次重复操作该功能时,就需要不断的从后台获取数据,要命的是请求是一样的,那么响应的数据也就一样。这样一来,就增加了服务器的负担了。

解决办法:利用$.data()缓存数据,那么遇到相同的请求时,就不需要服务器再次响应,而只从jquery的缓存数据中获取就行了。

在实际项目中,我就是利用这个方法进行处理的。为此我封装了一个异步请求方法:

/*
*url:请求的路径
*/
function getAjaxData(id, url,type) {
    if (id == null || id == "null") return false;
    var key = id + url;
    if ($("body").data(key) == null) //查找存放的数据
    {
        if (type == null) type = "post";
        $.ajax({
            url: url,
            data: {id:id},
            type: type,
            dataType: "json",
            async: false,
            success: function (data) {
                $("body").data(key, data);
            }
        });
    }
    return $("body").data(key); //返回数据   
}

为了避免key相通,我在方法中把key设置成id与url连接字符串。这个方法其实还可以再扩展,因为它目前提交的数据只有一个。