localStorage和sessionStorage使用
localStorage.setItem("key","value");//存数据 localStorage.getItem("key");//取数据 localStorage.removeItem("key");//删除数据 localStorage.clear();//清空数据
sessionStorage使用用法和localStorage一样
sessionStorage是会话缓存
localStorage是持久缓存
这里简单封装了一个,默认缓存7天,获取数据时判断数据是否过期
/** * 设置缓存数据 * 默认缓存一个星期 * @param key * @param value * @param exp 缓存时间(d天数,h小时,m分钟,s秒【例:7d=7天,7h=7小时,7m=7分钟】) */ function lStorage_set(key,value,exp) { var timestamp = new Date().getTime(); if(typeof exp != "undefined"){ if (endWith(exp,'d')) { exp = timestamp + parseInt(exp.replace('d','')) * 1000 * 60 * 60 * 24; } else if(endWith(exp,'h')){ exp = timestamp + parseInt(exp.replace('h', '')) * 1000 * 60 * 60; } else if (endWith(exp, 'm')) { exp = timestamp + parseInt(exp.replace('m', '')) * 1000 * 60; } else if (endWith(exp, 's')) { exp = timestamp + parseInt(exp.replace('s', '')) * 1000; } else { exp = timestamp + exp; } }else{
exp = timestamp + (1000 * 60 * 60 * 24 * 7);
} localStorage.setItem(key, JSON.stringify({data: value, exp: exp})); } /** * 获取缓存数据 * @param key * @returns {null} */ function lStorage_get(key) { var data = localStorage.getItem(key); if(data == null){ return null; } var timestamp = new Date().getTime(); var dataObj = JSON.parse(data); if(timestamp < dataObj.exp){ return dataObj.data; }else{ localStorage.removeItem(key); return null; } }
/** * 判断data结尾是否是end * @param data * @param end * @returns {boolean} */ function endWith(data,end){ var d = data.length - end.length; return (d >= 0 && data.lastIndexOf(end) == d); }
分类:
javaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端