微信小程序緩存支持二次開(kāi)發(fā)封裝實(shí)現(xiàn)解析
這篇文章主要介紹了微信小程序緩存支持二次開(kāi)發(fā)封裝實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
簡(jiǎn)介
微信小程序提供了緩存的api,包括同步和異步兩種,具體api不多說(shuō)明,可自行查看官方文檔
現(xiàn)在微信小程序緩存api存在一個(gè)問(wèn)題就是沒(méi)有設(shè)定過(guò)期時(shí)間,下面給大家介紹一下對(duì)小程序緩存的二次封裝,使其支持設(shè)定過(guò)期時(shí)間
實(shí)現(xiàn)方法
先聲明,這個(gè)并非原創(chuàng)方法,只是查找資料的時(shí)候看到的,覺(jué)得挺有用,就記錄下來(lái),也算轉(zhuǎn)播給大家
原作鏈接:https://gitee.com/JiangMu/wcache,侵刪
微信小程序緩存是永久性,實(shí)際開(kāi)發(fā)中需要定制時(shí)效性緩存;因此做了二次開(kāi)發(fā)
設(shè)置緩存-----------put(k, v, t) k為key,v為具體內(nèi)容(支持字符串、json、數(shù)組、boolean等等),t為可選參數(shù)表示有效時(shí)間(單位:秒)如存儲(chǔ)k為123過(guò)期時(shí)間1秒,
則調(diào)用put('k', '123', 1)方法;若永久存儲(chǔ)調(diào)用put('k', '123') 永久保存json:put('k', {"a":"1"}),數(shù)組、boolean等同理。
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) } }
讀取緩存-----get(k, def)-------def(自定義讀取失敗的默認(rèn)值) k為key,def為可選參數(shù),表示無(wú)緩存數(shù)據(jù)時(shí)返回值(支持字符串、json、數(shù)組、boolean等等)
如讀取k緩存,則調(diào)用get('k');若想要無(wú)緩存時(shí),返回默認(rèn)值則get('k','默認(rèn)值'),支持各個(gè)數(shù)據(jù)類(lèi)型。
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; } }
remove(k)移除某個(gè)key
clear()清空所有key
完整代碼:
var dtime = '_deadtime'; 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) } } 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; } } function remove(k) { wx.removeStorageSync(k); wx.removeStorageSync(k + dtime); } function clear() { wx.clearStorageSync(); } module.exports = { put: put, get: get, remove: remove, clear: clear, }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于原生CSS+JS實(shí)現(xiàn)一個(gè)標(biāo)簽輸入框
在各種框架大行其道的氛圍下,有些原生的屬性和方法可能都不太關(guān)注了,這也不失為是一種損失。本文就將利用原生CSS+JS實(shí)現(xiàn)一個(gè)簡(jiǎn)單的標(biāo)簽輸入框,感興趣的可以了解一下2022-04-04詳解Javascript中document.execCommand()的用法以及指令參數(shù)列表
execCommand方法是執(zhí)行一個(gè)對(duì)當(dāng)前文檔,當(dāng)前選擇或者給出范圍的命令。在HTML5中,execCommand可以通過(guò)JavaScript代碼來(lái)調(diào)用,使得開(kāi)發(fā)者可以在網(wǎng)頁(yè)中實(shí)現(xiàn)一些復(fù)雜的文本操作。在HTML編輯器中這個(gè)命令用得很多,酷炫的強(qiáng)大功能。2023-07-07JavaScript 數(shù)組運(yùn)用實(shí)現(xiàn)代碼
復(fù)習(xí)一下JS中數(shù)組的運(yùn)用。學(xué)習(xí)js數(shù)組的朋友可以參考下。2010-04-04分享一個(gè)自定義的console類(lèi) 讓你不再糾結(jié)JS中的調(diào)試代碼的兼容
在寫(xiě)JS的過(guò)程中,為了調(diào)試我們常常會(huì)寫(xiě)很多 console.log、console.info、console.group、console.warn、console.error代碼來(lái)查看JS的運(yùn)行情況,但發(fā)布時(shí)又因?yàn)镮E不支持console,又要去掉這些代碼,一不小心就會(huì)出錯(cuò)2012-04-04contenteditable可編輯區(qū)域設(shè)置換行實(shí)現(xiàn)技巧實(shí)例
這篇文章主要為大家介紹了contenteditable可編輯區(qū)域設(shè)置換行實(shí)現(xiàn)技巧實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Laravel中常見(jiàn)的錯(cuò)誤與解決方法小結(jié)
大家在用Laravel框架期間可能會(huì)遇到了不少問(wèn)題,現(xiàn)在我將自己遇到的一些問(wèn)題總結(jié)出來(lái),有一些調(diào)試起來(lái)著實(shí)不太容易,本文篩選出幾個(gè),希望這篇文章能讓大家在PHP開(kāi)發(fā)中少走一些彎路。2016-08-08JavaScript中return返回多個(gè)值的三個(gè)方法實(shí)現(xiàn)
本文主要介紹了JavaScript中return返回多個(gè)值的三個(gè)方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08JS實(shí)現(xiàn)的數(shù)字格式化功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)的數(shù)字格式化功能,結(jié)合實(shí)例形式分析了javascript針對(duì)數(shù)字與字符的相關(guān)運(yùn)算處理技巧,需要的朋友可以參考下2017-02-02原生js實(shí)現(xiàn)淘寶購(gòu)物車(chē)功能
這篇文章主要向大家推薦一個(gè)原生js實(shí)現(xiàn)淘寶購(gòu)物車(chē)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01