uniapp数据缓存是基于K-V形式进行存储,本文主要扩展加上过期时间处理,使用其缓存具备时效性
设计思路
缓存数据时添加过期时间,在获取缓存内容时,判断是否过期。若过期,则清除缓存内容;若未过期,则返回相应内容
设置缓存
set(key, value, expire) {
let data = {
expire: expire ? (this.time() + expire) : "",
value
}
if (typeof data === 'object')
data = JSON.stringify(data);
try {
uni.setStorageSync(key, data)
} catch (e) {
return false;
}
}
获取缓存内容
get(key) {
try {
let data = uni.getStorageSync(key)
const {value, expire} = JSON.parse(data)
if(expire && expire < this.time()) {
uni.removeStorageSync(key)
return false;
}else {
return value
}
} catch (e) {
return false;
}
}
获取当前时间
time() {
return Math.round(new Date() / 1000);
}
清除缓存数据
remove(key) {
if(key) uni.removeStorageSync(key)
}