需求是在缓存中存放一条数据, 并且设置有效时间1分钟? 应该怎么实现?
localStorage.setItem("test", "123");
在文档中没有找到设置时间的方法
https://developer.mozilla.org/zh-CN/docs/Web/API/Storage/setItem
可以将时间戳作为数据的一部分写入localStorage,get 的时候进行校验时间有效性,最简单的实现,localStorage本身并不支持过期
localStorage
没有提供有效时间设置API的。一般都是在设置本地缓存的同时也设置一个过期时间,或者存储时间。在读取的时候加以判断。
当然这种操作肯定是有现成的轮子可以用的,和1楼的回答一样,在Github/NPM上面检索一下就好了。
你可以做一个定时, setTimeout(function () { // clear数据 }, 60000) 一分钟后清除掉
localStorage 没有设置失效时间的配置,你可以看看能不能用别人的npm 包这样方便省事,自己实现也不难,可以参考别人的开源包。
https://www.npmjs.com/search?q=localstorage%20expired
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怎么实现
js import() 如何清除缓存?我有个需求需要动态导入一些js脚本,使用import()导入默认会有缓存,会有很大影响,如何才能实现每次导入的时候清除缓存? 加时间戳的方式其实我刚开始也试了,但使用的第一种方式,这种就会报错,但是我改成方式二,就可以,真奇怪,没有大佬能解释一下这个原因?使用的是vite