localstorage除非人为手动清除,否则会一直存放在浏览器中,但是很多情况下我们可能需要localstorage有一个过期时间,比如我们将用户身份认证 token 保存在客户端,1周之内有效,超过一周则要重新登录,那么这种需求该怎么实现呢
要知道,localstorage本身并没有提供过期机制,既然如此,那就只能我们自己来实现了,我们可以直接给其原型上加上这样一个方法
storage.proto网上购物英语作文type.texpire=(key,value,expire) =&七夕情人节浪漫话语gt;{ };storage.texpire(玛丽艳key,value,expire);
要过期就必须要记录时间,我们的思路是,设置值得时候就将当前时间记录进去,然后获取值得时候判断一下当前时间和之前的时间差是否在某个范围之内,若果超出范围,则清空当前项,并返回null
要将时间加入到值中就必须要定义一个格式
storage.prototype.texpire=(key, value, expire) =>{ let obj={ data:value, time:date.now(), expire:expire }; localstorage.titem(key,json.st三角形教案ringify(obj));}
包括下面3一小时的故事个字段
data 实际的值time 当前时间戳expire 过期时间因为localstorage 设置的值不能为对象, 所以这里使用了 json.stringify 方法将其转为字符串,最终在使用的时候得转回来。
接着我们添加一个获取的方法
storage.prototype.getexpire= key =>{ let val =localstorage.getitem(key); if(!val){ return val; } val =json.par(val); if(date.now()-val.time>val.expire){ localstorage.removeitem(key); return null; } return val.data;}
我们可以先测试一下
localstorage.texpire("token",'xxxxxx',5000);window.tinterval(()=>{ console.log(localstorage.getexpire("token"));},1000)
本质上我们的思路并非是要定时去清理过期的项,而是在获取的时候判断是否过期,如果过期再去清除该项。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-03 08:55:37,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/183b2764e7b3df4bff8727d44c036806.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:localStorage 设置过期时间的方法实现.doc
本文 PDF 下载地址:localStorage 设置过期时间的方法实现.pdf
留言与评论(共有 0 条评论) |