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


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

    设置缓存-----------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

  • 相关阅读:
    【转载】jquery取得iframe元素的方法
    【转载】URL重写相关
    【转载】PHP程序员突破成长瓶颈
    【转载】是什么浪费了我的上网时间
    信息化时代下的我们弄潮儿
    如何减小与“大牛”的差距
    servlet应用之cookies&session操作
    Servlet简介及工作原理
    深入学习Tomcat自己动手写服务器(附服务器源码)
    servlet过滤器
  • 原文地址:https://www.cnblogs.com/wesky/p/8493341.html
Copyright © 2020-2023  润新知