解决localStorage中存储的值不能及时释放的问题,默认存储时间为7天(day),以当前时间为准。
npm install storage-expired-time-setting
or
yarn add storage-expired-time-setting
import { localStore, sessionStore} from 'storage-expired-time-setting'
localStore.set('name','hyw','2022-1-10 09:28:00',(_this,value) => {})
localStore.get('name',(a,b) => {
console.log(a,b)
})
localStore.clear()
localStore.deleteItem(name)
该npm库和web storage的api保持相对应,具体的对应规则是(前者是标准API):
- setItem->set
- getItem-> get
- removeItem -> deleteItem
- clear->clear
具体参数如下:
- set( key, value, time,cb)设置key的失效时间,key:webstorage中对应的key。value:webstorage中对应的value。time表示失效时间,具体的格式为
2022-01-09 114:57:28
,是一个标准的时间串,否则会使用new Date
初始化一个当前时间。如果有其他的业务逻辑需要处理,可以在回调中进行,该回调可选
。 - get(key, cb), 取值
- deleteItem(key),删除某个key
- clear,清除所有的值
localStorage过期时间设置,统一返回的结构,返回的状态如下:
- SUCCESS(0): 表示操作正常
- FAILURE(1): 如果set时有异常,会返回 QuotaExceededError;如果get时有异常也返回failure
- EXPIRED(2): 在get key时,如果设置的值已经失效,则会返回
- UNKNOWN(3): 如果手动修改storage中的数据结构,导致结果规则不匹配,则会返回。
返回的数据结构如下:
1、正常返回
{
value: 222,
status: 0
}
2、set失败或者获得的值数据结果已不准确
{
value: 222,
status: 1
}
3、超时返回
{
value: null,
status: 2
}
关于存储失效的问题只适用于localstorage, 该包提供的sessionStorage只是为了让两个web storage返回的数据结构保持一致,同时处理了数据异常的问题。
MIT