简单实用的ajax缓存类

工作中经常使用的,其实也可以把get和save改成其他方式如cookie、sessionStorage等

//缓存类
function cacheHandler() {
	this.data = {};
	this.lifeTime = 3600*24; //默认缓存一天
	this.setLifeTime = function(lifeTime) {
		this.lifeTime = lifeTime;
	};
	this.save = function(name, value, lifeTime) {
		this.data[name] = {
			expire: new Date().getSeconds() + (parseInt(lifeTime) || this.lifeTime),
			value: value
		};
		return this.data[name]['value'];
	};
	this.get = function(name) {
		if (this.data[name] == undefined || this.data[name]['expire'] < new Date().getSeconds()) return undefined;
		return this.data[name]['value'];
	};
	this.getOrSave = function(name, value, lifeTime) {
		return this.get(name) == undefined && this.save(name, value, lifeTime);
	};
	this.clear = function(name) {
		name ? delete this.data[name] : this.data = {};
	};
}

//测试
var cache=new cacheHandler();//实例化个全局缓存对象
$(document).ready(function(){
	$("#data").click(function(){
		var cache_data=cache.get("cache_data");
		if(cache_data){ //缓存中有直接取 否则发ajax请求
			//处理结果
			
		}else{
			$.ajax({
				url: "list.php",
				type: 'get',
				dataType: "json",
				success: function (data) {
					//console.log(JSON.stringify(data));
					cache.save('cache_data', data);
					
					//处理结果
				},
				error: function(data, textStatus, errorThrown){
					//请求失败要操作的
				}
			});
		}
	})
})


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值