• 小程序设置缓存时效封装


    import {
        GET,
        PUT
    } from '../../utils/tools/session'    //引入 
    PUT('test','我是测试,缓存时效60秒',60)    // 设置时效值
    
    GET('test')    // 没值,就false;  有值就 有值  ''我是测试,缓存时效60秒'

    封装的session.js

    /*
    1.设置缓存-----------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等同理。
    
    2.读取缓存-----get(k, def)-------def(自定义读取失败的默认值) k为key,def为可选参数,表示无缓存数据时返回值(支持字符串、json、数组、boolean等等)
    如读取k缓存,则调用get('k');若想要无缓存时,返回默认值则get('k','默认值'),支持各个数据类型。
    
    3.remove(k)移除某个key   clear()清空所有key
    
    */
    let dtime = '_deadtime';
    
    export function 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 + dtime, timestamp + "")
      } else {
        wx.removeStorageSync(k + dtime)
      }
    }
    
    export function GET(k, def) {
      var deadtime = parseInt(wx.getStorageSync(k + 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;
      }
    }
    
    export function REMOVE(k) {
      wx.removeStorageSync(k);
      wx.removeStorageSync(k + dtime);
    }
    
    export function CLEAR() {
      wx.clearStorageSync();
    }

    拿走拿走, 不谢 

  • 相关阅读:
    论语学习系列(一)
    如何编译生成 dll
    Lua学习系列(二)
    Lua学习系列(一)
    Promise对象
    ... 扩展运算符
    class类
    proxy [ˈprɒksi] 代理
    HBuilder 打包流程
    Generator [ˈdʒenəreɪtə(r)] 函数结构
  • 原文地址:https://www.cnblogs.com/520BigBear/p/16347381.html
Copyright © 2020-2023  润新知