pmitCache微信小程序緩存工具類

一、前言

開發(fā)過程中經(jīng)常會使用到微信緩存,而微信緩存默認(rèn)只能按key永久緩存,為實(shí)現(xiàn)設(shè)置緩存時(shí)間,根據(jù)原生小程序api封裝此工具類

代碼片段

二、支持方法

put(k, v, t)

k:key
v:具體內(nèi)容(支持字符串、json、數(shù)組、boolean等等)
t:有效時(shí)間(單位:秒)

如存儲k為123過期時(shí)間1秒,則調(diào)用put(‘k’, ‘123’, 1)方法;若永久存儲調(diào)用put(‘k’, ‘123’)
永久保存json:put(‘k’, {“a”:”1”}),數(shù)組、boolean等同理。

get(k, def)

k:key
def:表示無緩存數(shù)據(jù)時(shí)返回值(支持字符串、json、數(shù)組、boolean等等)

如讀取k緩存,則調(diào)用get(‘k’);若想要無緩存時(shí),返回默認(rèn)值則get(‘k’,’默認(rèn)值’),支持各個(gè)數(shù)據(jù)類型。

remove(k)

移除某個(gè)key

clear()

清空所有key

其他方法

使用wx原生的即可。

三、工具類講解

put(k, v, t)

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 + postfix, timestamp + "")

  } else {

    wx.removeStorageSync(k + postfix)

  }

}

先存儲key的數(shù)據(jù)(字符串、數(shù)組、json),再判斷過期時(shí)間是否大于0,當(dāng)大于0時(shí),存儲key+一個(gè)后綴,內(nèi)容為當(dāng)前時(shí)間戳(單位秒)+有效時(shí)間t。

get(k, def)

function get(k, def) {

  var deadtime = parseInt(wx.getStorageSync(k + postfix))

  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;

  }

}

get方法,先通過key+一個(gè)后綴得到時(shí)間戳,如果時(shí)間戳存在,切小于當(dāng)前時(shí)間,說明過期;【那么,當(dāng)有默認(rèn)值時(shí)返回默認(rèn)值(包含字符串、數(shù)組、json),否則返回空?!慨?dāng)沒過期時(shí),正常讀取key的內(nèi)容,key存在時(shí)正常返回;否則返回默認(rèn)值,當(dāng)不存在默認(rèn)值時(shí)返回空。

其他方法

function remove(k) {

  wx.removeStorageSync(k);

  wx.removeStorageSync(k + postfix);

}

function clear() {

  wx.clearStorageSync();

}

remove(k)需要移除2個(gè)key,因?yàn)榇鎯Φ臅r(shí)候,可能存了時(shí)間戳,當(dāng)然即使不存在key,移除也是不會報(bào)錯(cuò)的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容