当前位置: 首页 > 知识库问答 >
问题:

javascript - js 怎么设置缓存有效时间?

甘永春
2023-09-15

需求是在缓存中存放一条数据, 并且设置有效时间1分钟? 应该怎么实现?

localStorage.setItem("test", "123");

在文档中没有找到设置时间的方法
https://developer.mozilla.org/zh-CN/docs/Web/API/Storage/setItem

共有5个答案

游炳
2023-09-15

可以将时间戳作为数据的一部分写入localStorage,get 的时候进行校验时间有效性,最简单的实现,localStorage本身并不支持过期

易招
2023-09-15

localStorage 没有提供有效时间设置API的。一般都是在设置本地缓存的同时也设置一个过期时间,或者存储时间。在读取的时候加以判断。

当然这种操作肯定是有现成的轮子可以用的,和1楼的回答一样,在Github/NPM上面检索一下就好了。

东方修谨
2023-09-15

你可以做一个定时, setTimeout(function () { // clear数据 }, 60000) 一分钟后清除掉

司立果
2023-09-15

localStorage 没有设置失效时间的配置,你可以看看能不能用别人的npm 包这样方便省事,自己实现也不难,可以参考别人的开源包。

image.png

https://www.npmjs.com/search?q=localstorage%20expired

陶乐生
2023-09-15

localStorage 是没有提供API的, 可以写一个公用的方法来进行存储的时候加上时间戳

export function setLocalStorageAndTime (key, value) { window.localStorage.setItem(key, JSON.stringify({ data: value, time: new Date().getTime() }))}

cookie可以, 可以用js-cookie插件:

let seconds = 10;let expires = new Date(new Date() * 1 + seconds * 1000);Cookies.set('username', 'tanggaowei', { expires: expires }); // 10 秒后失效
 类似资料:
  • set 设置普通类型的值 设置 set set(key: string, value: string expiryMode: string[ EX 秒 PX 分钟 ], time: number ) key: 键名称 value:存储的值 expiryMode:添加过期时间类型 EX 秒 PX 分钟 time:过期时间 // 存储一个key为gender,value 为 男人的数据,10秒后过期

  • 日期:1998年10月30日星期五格林尼治时间13:19:41 服务器:Apache/1.3.3(Unix) 缓存控制:max-age=3600,必须重新验证 有效期:1998年10月30日星期五格林尼治时间14:19:41 最后修改:1998年6月29日星期一02:28:12格林尼治时间 ETAG:“3E86-410-3596FBBC”

  • 而且应该只有一些机型支持设置倍率,倍率会影响结算视频观看完成情况,所以考虑禁用了。

  • 问一个好像很搞笑的问题,就是前端到底怎样来操作或者说设置缓存?搜索了一波,都在给科普缓存的字段什么意思,没有一个说到前端到底如何设置缓存,我的头都大了。懂的朋友麻烦告诉我好吗?谢谢了。

  • 有哪位大佬做过这种的时间控件吗,点击小方块进行时间的选择。js怎么实现

  • 请问这种拓扑图如何画呢?纯css好实现吗?