小程序緩存二開(帶有效時間)


微信小程序緩存是永久性,實際開發中需要定制時效性緩存;因此做了二次開發

設置緩存-----------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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM