封裝函數實現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)
