const sessionCache = {
|
set(key, value) {
|
if (!sessionStorage) {
|
return;
|
}
|
if (key != null && value != null) {
|
sessionStorage.setItem(key, value);
|
}
|
},
|
get(key) {
|
if (!sessionStorage) {
|
return null;
|
}
|
if (key == null) {
|
return null;
|
}
|
return sessionStorage.getItem(key);
|
},
|
setJSON(key, jsonValue) {
|
if (jsonValue != null) {
|
this.set(key, JSON.stringify(jsonValue));
|
}
|
},
|
getJSON(key) {
|
const value = this.get(key);
|
if (value != null) {
|
return JSON.parse(value);
|
}
|
},
|
remove(key) {
|
sessionStorage.removeItem(key);
|
}
|
};
|
const localCache = {
|
set(key, value) {
|
if (!localStorage) {
|
return;
|
}
|
if (key != null && value != null) {
|
localStorage.setItem(key, value);
|
}
|
},
|
get(key) {
|
if (!localStorage) {
|
return null;
|
}
|
if (key == null) {
|
return null;
|
}
|
return localStorage.getItem(key);
|
},
|
setJSON(key, jsonValue) {
|
if (jsonValue != null) {
|
this.set(key, JSON.stringify(jsonValue));
|
}
|
},
|
getJSON(key) {
|
const value = this.get(key);
|
if (value != null) {
|
return JSON.parse(value);
|
}
|
},
|
remove(key) {
|
localStorage.removeItem(key);
|
},
|
// 检测缓存是否存在
|
has(key)
|
{
|
return localStorage.getItem(key) ? true:false;
|
},
|
setItem(params){
|
let obj = {
|
name:'',
|
value:'',
|
expires:"",
|
startTime:new Date().getTime()
|
}
|
let options = {};
|
//将obj和传进来的params合并
|
Object.assign(options,obj,params);
|
if(options.expires){
|
//如果options.expires设置了的话
|
//以options.name为key,options为值放进去
|
localStorage.setItem(options.name,JSON.stringify(options));
|
}else{
|
//如果options.expires没有设置,就判断一下value的类型
|
let type = Object.prototype.toString.call(options.value);
|
//如果value是对象或者数组对象的类型,就先用JSON.stringify转一下,再存进去
|
if(Object.prototype.toString.call(options.value) == '[object Object]'){
|
options.value = JSON.stringify(options.value);
|
}
|
if(Object.prototype.toString.call(options.value) == '[object Array]'){
|
options.value = JSON.stringify(options.value);
|
}
|
localStorage.setItem(options.name,options.value);
|
}
|
}
|
};
|
|
export default {
|
/**
|
* 会话级缓存
|
*/
|
session: sessionCache,
|
/**
|
* 本地缓存
|
*/
|
local: localCache
|
};
|