js 设置有效的localStorage
/** * 设置有时效的localStorage * @调用:setSessionStorage('access_token', '123456', 5000); * @调用:getSessionStorage('access_token'); */ export function setLocalStorage(key, value, expires) { let params = { key: key, value: value, expires: expires}; if (expires) { // 记录何时将值存入缓存,毫秒级 let data = Object.assign(params, { startTime: new Date().getTime() }); localStorage.setItem(key, JSON.stringify(data)); } else { if (Object.prototype.toString.call(value) == '[object Object]') { value = JSON.stringify(value); } if (Object.prototype.toString.call(value) == '[object Array]') { value = JSON.stringify(value); } localStorage.setItem(key, value); } } // 获取有时效的sessionStorage export function getLocalStorage(key) { let item = localStorage.getItem(key); // 先将拿到的试着进行json转为对象的形式 try { item = JSON.parse(item); } catch (error) { // eslint-disable-next-line no-self-assign item = item; } // 如果有startTime的值,说明设置了失效时间 if (item && item.startTime) { let date = new Date().getTime(); // 如果大于就是过期了,如果小于或等于就还没过期 if (date - item.startTime > item.expires) { localStorage.removeItem(key); return ''; } else { return item.value; } } else { return item; } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步