微信小程序API數(shù)據(jù)緩存,微信小程序做數(shù)據(jù)緩存
每個微信小程序都可以有自己的本地緩存,可以通過wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)可以對本地緩存進行設置、獲取和清理。同一個微信用戶,同一個小程序 storage 上限為 10MB。localStorage 以用戶維度隔離,同一臺設備上,A 用戶無法讀取到 B 用戶的數(shù)據(jù)。
注意: localStorage是永久存儲的,但是我們不建議將關鍵信息全部存在localStorage,以防用戶換設備的情況。
wx.setStorage(OBJECT)
將數(shù)據(jù)存儲在本地緩存中指定的key中,會覆蓋掉原來該key對應的內(nèi)容,這是一個異步接口。
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
key | String | 是 | 本地緩存中的指定的 key |
data | Object/String | 是 | 需要存儲的內(nèi)容 |
success | Function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
示例代碼
wx.setStorage({
key:"key"
data:"value"
})
wx.setStorageSync(KEY,DATA)
?將data存儲在本地緩存中指定的key中,會覆蓋掉原來該key對應的內(nèi)容,這是一個同步接口。
參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
key | String | 是 | 本地緩存中的指定的key |
data | Object/String | 是 | 需要存儲的內(nèi)容 |
示例代碼
try {
wx.setStorageSync("key","value")
} catch (e) {
}
wx.getStorage(OBJECT)
從本地緩存中異步獲取指定key對應的內(nèi)容。
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
key | String | 是 | 本地緩存中的指定的 key |
success | Function | 是 | 接口調(diào)用的回調(diào)函數(shù),res = {data: key對應的內(nèi)容} |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success返回參數(shù)說明:
參數(shù) | 類型 | 說明 |
---|---|---|
data | String | key對應的內(nèi)容 |
示例代碼:
wx.getStorage({
key:'key',
success: function(res){
console.log(res.data)
}
})
wx.getStorageSync(KEY)
?從本地緩存中同步獲取指定key對應的內(nèi)容。
參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
key | String | 是 | 本地緩存中的指定的key |
示例代碼:
try {
var value = wx.getStorageSync('key')
if (value) {
// Do something with return value
}
} catch (e) {
// Do something when catch error
}
wx.getStorageInfo(OBJECT)
異步獲取當前storage的相關信息
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
success | Function | 是 | 接口調(diào)用的回調(diào)函數(shù),詳見返回參數(shù)說明 |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success返回參數(shù)說明:
參數(shù) | 類型 | 說明 |
---|---|---|
keys | String Array | 當前storage中所有的key |
currentSize | Number | 當前占用的空間大小, 單位kb |
limitSize | Number | 限制的空間大小,單位kb |
示例代碼:
wx.getStorageInfo({
success: function(res) {
console.log(res.keys)
console.log(res.currentSize)
console.log(res.limitSize)
}
})
wx.getStorageInfoSync
同步獲取當前storage的相關信息
示例代碼:
try {
var res = wx.getStorageInfoSync()
console.log(res.keys)
console.log(res.currentSize)
console.log(res.limitSize)
} catch (e) {
// Do something when catch error
}
wx.removeStorage(OBJECT)
從本地緩存中異步移除指定 key 。
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
key | String | 是 | 本地緩存中的指定的 key |
success | Function | 是 | 接口調(diào)用的回調(diào)函數(shù) |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
示例代碼:
wx.removeStorage({
key: 'key',
success: function(res) {
console.log(res.data)
}
})
wx.removeStorageSync(KEY)
從本地緩存中同步移除指定 key 。
參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
key | String | 是 | 本地緩存中的指定的 key |
示例代碼:
try {
wx.removeStorageSync('key')
} catch (e) {
// Do something when catch error
}
wx.clearStorage()
?清理本地數(shù)據(jù)緩存。
示例代碼:
wx.clearStorage()
wx.clearStorageSync()
同步清理本地數(shù)據(jù)緩存
示例代碼:
try {
wx.clearStorageSync()
} catch(e) {
// Do something when catch error
}
Bug & Tip
-
tip
: 本地數(shù)據(jù)存儲的大小限制為 10MB
更多微信小程序開發(fā)教程,可以關注hi小程序。
第二部分:如何開通一個小商店