【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'); }