微信小程序-缓存简单封装

说明:因为减轻服务器的压力,部分接口数据的其实是可以本地缓存,避免向服务端请求,为此我参考: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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容