什么是本地存储的有效期?
2024-01-08 17:36:39
本地缓存设置有效期?
????????使用localStorage本地缓存存储数据时不能像cookie那样设置有效期,使得数据会一直存在浏览器中,除非人为删除。这时我们可以封装一下localStorage,在需要有效期的数据存储时同时设置到期时间,读取的时候判断是否过期,过期则清除。
????????本地存储的四种方式:cookie,localStorage, sessionStorage, indexDB
cookie: 通过 expires / max-age 设置过期时间。如不指定,则为 session cookie, 即一次会话有效。
localStorage: 持久存储,需主动清除
sessionStorage: 会话存储,会话结束(浏览器,标签页关闭)自动清除。
indexDB: 持久存储,需主动删除。
const getExpireKey = key => key + '_expire_time'
const setStorageSync = (key, value, expire) => {
if (expire) {
let time = new Date().getTime() + expire * 1000
time && uni.setStorageSync(getExpireKey(key), time)
}
uni.setStorageSync(key, value)
}
const getStorageSync = key => {
let expire = uni.getStorageSync(getExpireKey(key))
if (expire && expire < new Date().getTime()) {
uni.removeStorageSync(getExpireKey(key))
uni.removeStorageSync(key)
}
return uni.getStorageSync(key)
}
在存储时判断是否有过期时间expire,这里以秒为单位,可以自己增加一个时间单位的参数,有则同时将过期时间存入缓存,key为原来的key拼上_expire_time。
在读取缓存数据时,先判断该key值是否有设置有效期,如果有则与当前时间对比判断是否过期,过期则清除缓存,未设置有效期或未过期则直接返回数据。
文章来源:https://blog.csdn.net/m0_74359467/article/details/135461384
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!