JSフロントエンドキャッシュオブジェクトパッケージ
6444 ワード
/**
#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()
*
*/
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
localStorage.removeItem(key);
return
false
;
}
return
res.data;
},
"all"
:
function
() {
var
a =
new
Array();
for
(
var
i = 0; i
var
key = localStorage.key(i);
var
res = json_decode(localStorage.getItem(localStorage.key(i)));
if
(res.etime
localStorage.removeItem(key);
}
else
{
a[key] = res.data;
}
}
return
a;
},
"gc"
:
function
() {
var
ctime = time();
for
(
var
i = 0; i
var
key = localStorage.key(i);
var
res = json_decode(localStorage.getItem(localStorage.key(i)));
if
(res.etime
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()