localstorage怎么设置过期时间

cookie可以设置过期时间,但是localstorage API只有删除方法,没有类似cookie设置expires的属性,莫非只能通过获取客户端时间来进行删除?

阅读 73.2k
9 个回答

在 LS 里再存一个时间戳,每次读取的时候比较是否过期。

这就好比问:「MySQL 怎么设置过期时间?」

答案是:不能

D盘怎么设置过期时间?

答案是:不能

localStorage 能设置过期时间了

  • 好老的问题了;
  • 但还是没有采纳的答案,我来回答一下吧,
  • localStoage是能设置过期的,只不过他没有像cookie那样直接使用,
  • 想一个取巧的办法,比如我们在存的时候,也存一个时间戳进去,嗯,就是要过期的时间,
  • 在取用的时候,先比较一下是否小于当前时间;
  • 详细看一下这里:如何巧妙给localStorage设置过期时间?

猜测楼主想要的应该是另一个东西:sessionStorage,
与 localStorage 同属 webstorage 规范,API 一致不过是带有生命周期的,其生命周期 以页面 session 为界(不能自己设置过期时间)。只要浏览器保持打开,页面刷新和重载都会保持 sessionStorage 内容,关闭的时候清除。新建标签页和新建窗口则属于新的 session。

参考资料:
1. Dom Storage 用法 @ MDN
2. session storage 规范 @ W3C

local storage好像确实没有过期时间的功能。
如果确实有这个需求,
可以自己写代码实现。

使用locache这个是localStorage的插件可以使用它定义的接口设置过期时间

推荐问题
宣传栏