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,
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM