/**
* 缓存对象
*/
var
C = {
"set"
:
function
(key, value, endtime) {
var
key = arguments[0] ? arguments[0] :
''
;
var
value = arguments[1] ? arguments[1] :
''
;
var
endtime = arguments[2] ? arguments[2] : 60 * 60 * 24 * 15;
if
(key ==
''
) {
return
false
;
}
if
(key && value ==
''
) {
return
C.del(key);
}
if
(key && value !=
''
) {
var
saveobj = {
data: value,
//time: time(), //保存时间
etime: time() + endtime
}
localStorage.setItem(key, JSON.stringify(saveobj));
return
true
;
}
},
"clear"
:
function
() {
localStorage.clear();
},
"del"
:
function
(key) {
localStorage.removeItem(key);
},
"get"
:
function
(key) {
var
res = json_decode(localStorage.getItem(key));
if
(!res) {
return
false
;
}
if
(res.etime < time()) {
localStorage.removeItem(key);
return
false
;
}
return
res.data;
},
"all"
:
function
() {
var
a =
new
Array();
for
(
var
i = 0; i < localStorage.length; i++) {
var
key = localStorage.key(i);
var
res = json_decode(localStorage.getItem(localStorage.key(i)));
if
(res.etime < time()) {
localStorage.removeItem(key);
}
else
{
a[key] = res.data;
}
}
return
a;
},
"gc"
:
function
() {
var
ctime = time();
for
(
var
i = 0; i < localStorage.length; i++) {
var
key = localStorage.key(i);
var
res = json_decode(localStorage.getItem(localStorage.key(i)));
if
(res.etime < time()) {
localStorage.removeItem(key);
}
}
},
"init"
:
function
() {
var
s = arguments[0] ? arguments[0] : 3;
s = s * 1000;
C.gc();
setInterval(
function
() {
C.gc();
}, s);
}
}
//Json数值处理
function
json_encode(obj) {
return
JSON.stringify(obj)
}
function
json_decode(s) {
var
j = eval(
'('
+ s +
')'
);
return
j;
}
//获取当前时间戳
function
time() {
return
Math.floor(
new
Date().getTime() / 1000);
}
#C对象使用方式
//初始化过期回收时间,传入回收精度 30为秒
C.init(30);
//设置缓存
C.set("key","value");
//设置带过期时间的缓存 200后过期
C.set("key","value",200);
//保存一个对象
var req = {}
req.id = 5;
req.name = "wangcong";
req.time = time();
C.set("wc",req);
//获取缓存
C.get("key")
//删除缓存
C.del("key");
//清空缓存
C.clear()
//返回缓存空间所有
C.all()