/** *缓存在文件系统中 */ (function(window) { var u = {}; var cache_key = "APP_CACHAE"; /** * 存入缓存 * true: 开启同步 * false: 异步 */ u.put = function(key, value, sync) { var caches = {}; if (sync == "undefined" ? false : sync) { //同步返回结果: var caches_str = api.getPrefs({ sync: true, key: cache_key }); if(caches_str){ caches = JSON.parse(caches_str); } caches[key] = value; api.setPrefs({ key: cache_key, value: caches }); }else { api.getPrefs({ key: cache_key }, function(ret, err) { if(ret) { var caches_str = ret.value; if(caches_str) { caches = JSON.parse(caches_str); } caches[key] = value; api.setPrefs({ key: cache_key, value: caches }); } else { console.log("存入缓存失败: " + JSON.stringify(err)); } }); } }; /** * 取出缓存 * 同步请求 */ u.get = function(key) { //同步返回结果: var caches_str = api.getPrefs({ sync: true, key: cache_key }); // console.log("type:"+typeof caches_str); if(""==caches_str){ console.log("没有缓存"); return caches_str; } var caches = JSON.parse(caches_str); var _cache = caches[key]; if(!_cache) { _cache = ""; console.log("不存在key为["+key+"]的缓存"); } else { // console.log("key: ["+key+"], value: "+_cache); } return _cache; } /** * 清除指定缓存 */ u.clear = function(key) { console.log("清除指定缓存:"+key); //同步返回结果: var caches_str = api.getPrefs({ sync: true, key: cache_key }); if(caches_str) { var caches = JSON.parse(caches_str); if (caches.hasOwnProperty(key)) { delete caches[key]; api.setPrefs({ key: cache_key, value: caches }); console.log("已删除["+key+"]"); }else { console.log("无法清除key为["+key+"]的缓存,因为不存在此key"); } } }; /** * 清除所有缓存 */ u.clearAll = function(){ api.setPrefs({ key: cache_key, value: '{}' }); console.log('清除缓存成功'); } /** * 打印所有缓存 */ u.print = function(){ var caches_str = api.getPrefs({ sync: true, key: cache_key }); console.log(caches_str); } /* end */ window.$cache = u; })(window);