【JavaScript】闭包应用之数据缓存

  最近的开发中的许多事件会被频繁的触发,由于没有做缓存的处理,每次事件触发都会后台调用一样的数据。这几天我突然意识到自己的代码有很大的优化空间,继而想起了闭包可以有缓存的功能,于是乎便对其进行了深入的研究以方便对之前写的代码进行优化。在完成优化后,写以下例子作作为总结:

var a = (function b () {
	var _cache = {};
	return {
		doSometing: function (name) {
			if (name in cache) {
				var data = _cache[name];//获取缓存数据
				doSometingByData(data);
			}else {
				_cache[name] = doSometingToGetData(name);
			}
		},
		
	};
})();

function doSometingToGetData () {
	//可以在这里向后台取数据,也可以是其他操作,目的就是获取你需要缓存的数据并返回
	return data;
}
var a = (function b () { 
	var _cache = {};
	return {
		setCache: function (name) {
			_cache[name] = doSometingToGetData(name);
		},
		getCache: function (name) {
			return _cache[name];
		}
	}
});

var c = function () {
	a.setCache('daihere');
	var data = a.getCache('daihere');
}
posted @ 2016-01-21 15:47  daihere1993  阅读(816)  评论(0编辑  收藏  举报