说明:因为减轻服务器的压力,部分接口数据的其实是可以本地缓存,避免向服务端请求,为此我参考:https://gitee.com/JiangMu/wcache的方案,改写为了ES6模式的方式来处理。
把它封装成一个类进行操作。
代码如下:
/**
* name: wx-class-cache.js
* description: 微信缓存二次封装,有设置时效性的封装
*
*/
export default class WxCache {
constructor() {
this.dtime = '_deadtime';
}
put(k, v, t) {
wx.setStorageSync(k, v)
var seconds = parseInt(t);
if (seconds > 0) {
var timestamp = Date.parse(new Date());
timestamp = timestamp / 1000 + seconds;
wx.setStorageSync(k + this.dtime, timestamp + "")
} else {
wx.removeStorageSync(k + this.dtime)
}
}
get(k, def) {
var deadtime = parseInt(wx.getStorageSync(k + this.dtime))
if (deadtime) {
if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {
if (def) {
return def;
} else {
return;
}
}
}
var res = wx.getStorageSync(k);
if (res) {
return res;
} else {
return def;
}
}
remove(k) {
wx.removeStorageSync(k);
wx.removeStorageSync(k + this.dtime);
}
clear() {
wx.clearStorageSync();
}
}
使用的方式
1:在app.js进行实例化,如图示:

image.png
2:在需要进行缓存处理地方进行调用方法:

image.png

image.png