//添加缓存
//key 缓存key,类型=字符串
//value 缓存值,类型=object,string,数字,都可以存入
//liveSeconds,缓存时长,秒。不设置就是一直缓存
function addCache(key, value, liveSeconds) {
var valueType = typeof (value);
if (valueType == 'string') {
sessionStorage.setItem(key, value);
} else {
var str = JSON.stringify(value);
sessionStorage.setItem(key, str);
}
//缓存计时器,标识
//相同键,清理之前的计时器
var keyJs = key + "_pt296s";
var jstId = sessionStorage.getItem(keyJs);
if (jstId != null) {
var timeOutId = parseInt(jstId);
window.clearTimeout(timeOutId);
sessionStorage.removeItem(keyJs);
}
//缓存类型,保存
var cacheTypeKey = key + "_t";
sessionStorage.setItem(cacheTypeKey, valueType);
if (liveSeconds == undefined) {
return;
}
if (liveSeconds <= 1) {
return;
}
//移除缓存
var km = setTimeout(function () {
console.log('移除缓存,key=' + key);
sessionStorage.removeItem(key);
sessionStorage.removeItem(cacheTypeKey);
sessionStorage.removeItem(keyJs);
}, liveSeconds * 1000);
console.log(999, km);
sessionStorage.setItem(keyJs, km);
}
//获取缓存
function getCache(key) {
//缓存的类型
var cacheTypeKey = key + "_t";
var vt = sessionStorage.getItem(cacheTypeKey);
//缓存值
var va = sessionStorage.getItem(key);
if ('object' == vt) {
return JSON.parse(va);
}
else if ('number' == vt) {
if (va.indexOf(".") >= 0) {
return parseFloat(va);
}
return parseInt(va);
}
return va;
}
12-03
8762