小程序缓存二开(带有效时间)

微信小程序缓存是永久性,实际开发中需要定制时效性缓存;因此做了二次开发

设置缓存-----------put(k, v, t) k为key,v为具体内容(支持字符串、json、数组、boolean等等),t为可选参数表示有效时间(单位:秒)如存储k为123过期时间1秒,

则调用put('k', '123', 1)方法;若永久存储调用put('k', '123') 永久保存json:put('k', {"a":"1"}),数组、boolean等同理。

 1 function put(k, v, t) {
 2   wx.setStorageSync(k, v)
 3   var seconds = parseInt(t);
 4   if (seconds > 0) {
 5     var timestamp = Date.parse(new Date());
 6     timestamp = timestamp / 1000 + seconds;
 7     wx.setStorageSync(k + dtime, timestamp + "")
 8   } else {
 9     wx.removeStorageSync(k + dtime)
10   }
11 }

 

读取缓存-----get(k, def)-------def(自定义读取失败的默认值) k为key,def为可选参数,表示无缓存数据时返回值(支持字符串、json、数组、boolean等等)

如读取k缓存,则调用get('k');若想要无缓存时,返回默认值则get('k','默认值'),支持各个数据类型。

 1 function get(k, def) {
 2   var deadtime = parseInt(wx.getStorageSync(k + dtime))
 3   if (deadtime) {
 4     if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {
 5       if (def) { return def; } else { return; }
 6     }
 7   }
 8   var res = wx.getStorageSync(k);
 9   if (res) {
10     return res;
11   } else {
12     return def;
13   }
14 }

 

 

代码如下

 1 var dtime = '_deadtime';
 2 function put(k, v, t) {
 3   wx.setStorageSync(k, v)
 4   var seconds = parseInt(t);
 5   if (seconds > 0) {
 6     var timestamp = Date.parse(new Date());
 7     timestamp = timestamp / 1000 + seconds;
 8     wx.setStorageSync(k + dtime, timestamp + "")
 9   } else {
10     wx.removeStorageSync(k + dtime)
11   }
12 }
13 
14 function get(k, def) {
15   var deadtime = parseInt(wx.getStorageSync(k + dtime))
16   if (deadtime) {
17     if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {
18       if (def) { return def; } else { return; }
19     }
20   }
21   var res = wx.getStorageSync(k);
22   if (res) {
23     return res;
24   } else {
25     return def;
26   }
27 }
28 
29 function remove(k) {
30   wx.removeStorageSync(k);
31   wx.removeStorageSync(k + dtime);
32 }
33 
34 function clear() {
35   wx.clearStorageSync();
36 }
37 
38 module.exports = {
39   put: put,
40   get: get,
41   remove: remove,
42   clear: clear,
43 }

 

转载:https://gitee.com/JiangMu/wcache

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值