封装函数实现localStorage存储数据实现数据具有实效性
1、设置localStorage数据时设置当前时间戳
/** * 设置localStorage数据实效性 */ setLocalStorage: function(key, value) { const curTime = new Date().getTime(); localStorage.setItem(key, JSON.stringify({ data: value, time: curTime })); },
2、获取localStorage数据时判断是否过期
/** * 判断localStorage数据是否过期,过期删除,未过期正常返回 localStorage数据 */ getLocalStorage: function(key, exp) { const localData = localStorage.getItem(key); const localDataObj = JSON.parse(localData); const nowTime = new Date().getTime(); if (nowTime - localDataObj.time > exp) { console.log("数据已过期"); // 删除localStorage已过期数据 localStorage.removeItem(key); return 'localStorage数据已过期'; } else { const data = JSON.parse(localDataObj.data); return data; } },
3、应用
let val = '{"name":"setLocalValue"}'; this.setLocalStorage('info', val); setTimeout(()=> {//未过期localStorage console.log(this.getLocalStorage("info",1000));//输出 {name: "setLocalValue"} },900) this.setLocalStorage('info', val); setTimeout(()=> {//过期localStorage console.log(this.getLocalStorage("info",1000));//localStorage数据已过期 },2000)