• uniapp缓存设置过期时间


    小程序设置缓存时,添加一个失效时间

    其实原理就是,在设置缓存的时候,同时设置一个 缓存名+deadtime用来存当前的时间戳. 使用的时候直接判断一下设置的到期时间(t) 和 当前的时间,查看是否过期

    var dtime = '_deadtime'
    
        /**
         * @param {*} k: key; v: 缓存值; t: 过期时间
         * @return {*}
         */ 
    function set(k, v, t) {
      uni.setStorageSync(k, v)
      var seconds = parseInt(t);
      if (seconds > 0) {
        var timestamp = Date.parse(new Date());// 获取时间戳的毫秒数
        timestamp = timestamp / 1000 + seconds;// 时间戳 + 过期时间
        uni.setStorageSync(k + dtime, timestamp + "")
      } else {
        uni.removeStorageSync(k + dtime)
      }
     }
    
    
        /**
         * @param {*} k: 缓存名; def: 自定义读取失败的默认值(可选)
         * @return {*}
         */ 
    function get(k, def) {
      var deadtime = parseInt(uni.getStorageSync(k + dtime))// 获取缓存的时间
      if (deadtime) {
        if (parseInt(deadtime) < Date.parse(new Date()) / 1000) { // 如果缓存时间小于 当前时间戳
          if (def) { return def; } else { return; }// 返回一个过期的错误
        }
      }
      var res = uni.getStorageSync(k);// 否则直接读取真正的缓存名, 并且返回出去
      if (res) {
        return res;
      } else {
        return def;
      }
    }
     
     /**
      * 清除指定名字缓存
      * @param {*} k: 缓存名; 
      * @return {*}
      */ 
    function remove(k) {
      uni.removeStorageSync(k);
      uni.removeStorageSync(k + dtime);
    }
     
     /**
      * 清除所有缓存(包括token)慎用!!!
      * @param {*}
      * @return {*}
      */ 
    function clear() {
      uni.clearStorageSync();
    }
    
    
    module.exports = {
    	set:set,
    	get:get,
    	remove:remove,
    	clear:clear,
    }
    
  • 相关阅读:
    CSS3阴影 box-shadow的使用和技巧总结
    css实现一行文字居中,多行文字左对齐
    让一个div里面的其它div或者标签内容居中
    巧用css内容生成
    Emmet-前端开发神器
    新手向:Vue 2.0 的建议学习顺序
    require() 源码解读
    Vue-webpack项目配置详解
    webpack---webpack构建vue多页面框架(一、工程布局)
    STS创建spring boot项目,pom.xml文件第一行报错
  • 原文地址:https://www.cnblogs.com/cl1998/p/14291902.html
Copyright © 2020-2023  润新知