Javascript实现带缓存的AJAX请求

JavaScript 可以实现带缓存的AJAX请求。

具体实现方法可以参照下面Demo

//单例模式AJAX请求
//可对AJAX请求进行缓存处理
function DataContext(){
    var m_data = null;
    this.getData = function(option){
        var opt = $.extend({
            cached: true,            //缓存参数,默认为试用缓存
            success: function(){},    //成功回调
            error: function(){}        //失败回调
        }, option);
        var self = this;
        if(opt.cached && m_data != null){    //满足读取缓存条件直接从缓存读取
            opt.success(m_data);
            return;
        }
        //否则执行AJAX请求读取
        $.ajax({
            url: "http://www.####.com/test.php",
            type: "POST",
            success: function(data){
                m_data = data;
                opt.success(m_data);
            },
            error: function(){
                opt.error("Network Error");
            }
        });
    };
}



//Demo:
var ctx = new DataContext();

//设置缓存参数,第一次没加载则自动ajax请求加载
ctx.getData({
    cached: true,
    success: function(data){
        alert(data);
    },
    error: function(msg){
        alert(msg);
    }
});

//省略缓存参数,默认为使用缓存
ctx.getData({
    success: function(data){
        alert(data);
    }
});

//禁用缓存,则强制新的ajax请求刷新
ctx.getData({
    cached: false,
    success: function(data){
        alert(data);
    }
});

//省略成功回调并禁用缓存则强制执行AJAX拉取数据。
//此方式可用于空闲时在浏览器端缓存数据,下次请求可直接从缓存读取
ctx.getData({cached: false});

转载于:https://www.cnblogs.com/xboy2012/archive/2012/09/26/js_cached_ajax.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值