微信小程序设置缓存的时效以及读取缓存

本文介绍了一种在微信小程序中实现带有时效性的缓存管理方法。通过自定义的setStorageSync和getStorageSync函数,可以为特定的数据设置过期时间,从而在过期后自动删除这些数据,有助于提高用户体验并节约存储空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因公司发展需要,本人也踩进微信小程序的坑了,爬坑是一个艰辛的过程,现将遇到的部分问题记录一下。

小程序官方API提供了wx.setStorageSync,不过是永久缓存,除非用户手动清除,否则会一直留在用户手机 。而我们都知道,本地缓存最大为10M。实际开发过程中,或者为了给用户节省内存,或者为了设置信息即时性,我们需要对部分缓存设置时效性,在他到期之后删除。相关代码如下:

 //设置时效缓存,time为有效时间,单位小时,默认24小时
var postfix = '_deadtime';
setStorageSync: function (k, v, time){
wx.setStorageSync(k, v);
var t=time?time:24;
var seconds = parseInt(t * 3600);
if (seconds > 0) {
var timestamp = Date.parse(new Date());
timestamp = timestamp / 1000 + seconds;
wx.setStorageSync(k + postfix, timestamp + "")
} else {
wx.removeStorageSync(k + postfix)
}
},
//读取缓存,若缓存不存在,返回def,若没有设置默认返回值,则返回undefined
getStorageSync:function(k,def){
var deadtime = parseInt(wx.getStorageSync(k + postfix))
if (deadtime) {
if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {
wx.removeStorageSync(k);
wx.removeStorageSync(k + postfix);
if (def) { return def; } else { return; }
}
}
var res = wx.getStorageSync(k);
if (res) {
return res;
} else if(def){
return def;
}else{
return;
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值