?
微信小程序API 數據緩存
微信小程序提供了豐富的緩存API來(lái)幫助開(kāi)發(fā)者實(shí)現數據緩存功能,數據緩存可以幫助小程序在離線(xiàn)狀態(tài)下仍然能夠訪(fǎng)問(wèn)到一些重要的微信數據,提高用戶(hù)體驗,小程序本文將介紹微信小程序中常用的數據數據緩存API,并給出相應的緩存使用示例。
1、微信本地緩存
微信小程序提供了本地緩存API,小程序可以將數據存儲在本地,數據以便在離線(xiàn)狀態(tài)下進(jìn)行訪(fǎng)問(wèn),緩存本地緩存分為兩種類(lèi)型:永??久存儲和ヾ(′?`)?臨時(shí)存儲。微信
1、小程序1 永久存儲
永久存儲是數據指將數據存儲在??本地的磁盤(pán)上,即使小程序被關(guān)閉或手機(╬?益?)重啟,數據仍然存在,可以使用wx.setStorag(O_O)eSync()和wx.getStorageSy??nc()方法進(jìn)行數據的存儲和讀取。
示例代碼:
// 存儲數據wx.setStorageSync('key', 'value');// 讀取數據const value = wx.getStorageSync('key');console.log(??value); // 'value'臨時(shí)存儲是指將數據存儲在(′▽?zhuān)?)內存中,當小( ?° ?? ?°)程序被關(guān)閉或手機重啟時(shí),數據會(huì )被清除,可以使用wx.setStorage()和wx.getStora(T_T)ge()方法進(jìn)行數據的存儲和讀取。
示例代碼:
// 存儲數據wx.setStorage({ key: 'key', data: 'value', duration: 1000 // 有效期為1秒(單位:毫秒)});// 讀取數據const value = wx.getStorage({ key: 'key', success: function (res) { console.log(res.data); // 'value' }});2、Webヽ(′ー`)ノ緩存
Web緩存是指將數據存儲在瀏覽器的緩存中,以提高頁(yè)面加載速度,可以使用wx.clearStorageSync()和wx.clearStorage()方法清除本地緩存。
示例代碼:
// 清除本地緩存(同步(◎_◎;))wx.clearStorageSync();// 清除本地緩存(異步)wx.clearStorage({ success: function () { console.??log('清除成功'); }});3、數據庫緩存
數據庫緩存是指將數據存儲在小程序的云數據庫中,以實(shí)現數據的持久化存儲,可以使(′;д;`)用wx.cloud.database()方法獲取數據庫實(shí)例,然后調用相應的API進(jìn)行數據的增刪改查。
示例代碼:
const db = wx.cloud.dat??abase();const todo??sCollection = db.collection('t??odos')???;// 添加一條記錄到集合中(異步)todosCollection.add({ data: { text: 'Hello, World!' }, success: function (res) { console.log('添加成功', res); }});4、文件緩存
文件緩存是指將文件存儲在小程序的文件系統中,以實(shí)現文件的持久化(hua)存儲,可以使用wx.saveFile()和wx.readFile()方法進(jìn)行文件的保存和讀取。
示例代碼:
// 保存文件(異步)wx.saveFile({ tempFilePat?h: 'tempFilePath', // 臨時(shí)(shi)文件路徑,用于獲取文件信息(如大小、創(chuàng )建時(shí)間等)的字段值,必填參數,該路徑不???能為空;否則會(huì )報錯??(ENOSPCNOSPACE),tempFilePath可以是本地文件路徑、臨時(shí)文件路徑、網(wǎng)絡(luò )圖片地址、云文(wen)件ID等,建議使用云文件ID,可通過(guò)wx.cloud.uploadFile()方(??-)?法獲取,最大不超??過(guò)1MB,不支持打開(kāi)文檔選擇文件,僅支持從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳(chuan)的??方式獲取圖片鏈接,請使用chooseImag??e接口,filePath為空的情況下,返回的是臨時(shí)文件路徑,isNewFile為true表(biao)示本次保存的是新文件,若已存在同名文件,將會(huì )覆(′_ゝ`)蓋舊文件;isNewFile為false表示本次保存的是更新已有的文件,如果isNewFile為false且同名文件不存在時(shí),會(huì )生成一個(gè)與當前時(shí)間戳相同的隨機字符串作為文件名,saveSucces??s回調函數會(huì )在保存成功后執行,參數為文件信息對象,error回調函數會(huì )在保存失敗后執行,參數為錯誤信息對象,success回調函數會(huì )??在保存成功后執行,參數為文件ID(由底層生成),如果isNewFile為false且同名文(′▽?zhuān)?)件已經(jīng)存在,則返回原文件ID,fail回調函數會(huì )在保存失敗后執行,參數為錯誤信息對象,complete回調函數會(huì )在保存完成時(shí)執行,無(wú)論成功或失敗都會(huì )執行,可以通過(guò)complete回調函數獲取到文??件的保存路徑(如無(wú)權限或保存失敗時(shí)),注意:該回調函數的參數是一個(gè)Promise對象,該Promise對象成功時(shí)resolve的參數是文件的完整路(lu)徑(如無(wú)權限或保存失敗時(shí)則為空);失敗時(shí)(shi)reject的參數是錯誤信息對象,saveFile方法不會(huì )檢查文件夾是??否??存在,如果需要檢查文件夾是否存在,請在調(?_?;)用saveFile方法前??先使用mkdir接口創(chuàng )建文件夾,同時(shí)需要注意,saveFile方法不支持跨域訪(fǎng)問(wèn)圖片資源,請確保圖片資源在小程序所在域名下,因此在使用saveFile方法保存圖片時(shí)(shi),請確保圖片資源的URL是合法的跨域URL或者同源URL,另外需要注意的是,由于小程序的安(╬?益?)全機制限制,無(wú)法直接訪(fǎng)問(wèn)用戶(hù)手機中的本地資源(如相冊、相機等),因此在使用saveFile方法保存圖片時(shí),請確保圖片資源的URL是合法的跨域URL或者同源U(′▽?zhuān)?RL,如果需要從本地相冊選取圖(tu)片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用(yong)chooseImage接口,如果(╥_╥)需要從本地相冊選取圖片或拍照后(hou)向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseIma??ge接口,如果需要從(╯°□°)╯本地相冊選取圖片或拍照后向服務(wù)器上傳的方(fang)式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊┐(′д`)┌選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使(shi)用chooseImage接口,如果需要從本地相冊選取??圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用cho(??-)?oseImage接口,如果需要從本地??相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImag?e接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式(shi)獲取圖片鏈接,請使用(′?`)chooseImage接口,如果需要從本地相冊選取圖片或拍照后向(xiang)服務(wù)器上傳(◎_◎;)的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片(╯°□°)╯︵ ┻━┻鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍??照后向服務(wù)??器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相??冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍??照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選??取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的(de)方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口??,如果需要從本地相冊??選取圖片或拍照后ヽ(′▽?zhuān)?ノ向服務(wù)器上傳的方式獲取圖片鏈接( ?ω?),請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照后向服務(wù)器上傳的方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片??或拍?(°ロ°) !照中方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,請使用c??hooseImage接口,如(ru)果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,??請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照中(zhong)方(′▽?zhuān)?式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,請使用chooseI(′?`*)mage接口,如果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,請使用chooseImage接口,如果需要從本地相冊選取圖片或拍照中方式獲取圖片鏈接,請使用c??hooseImage接口,如果需要從本地相冊選取圖片或拍照中方式獲取