微信小程序API 數(shù)據(jù)緩存

2022-05-11 16:49 更新

每個微信小程序都可以有自己的本地緩存,可以通過wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)可以對本地緩存進(jìn)行設(shè)置、獲取和清理。同一個微信用戶,同一個小程序 storage 上限為 10MB。localStorage 以用戶維度隔離,同一臺設(shè)備上,A 用戶無法讀取到 B 用戶的數(shù)據(jù)。

注意: localStorage是永久存儲的,但是我們不建議將關(guān)鍵信息全部存在localStorage,以防用戶換設(shè)備的情況。

wx.setStorage(OBJECT)


將數(shù)據(jù)存儲在本地緩存中指定的key中,會覆蓋掉原來該key對應(yīng)的內(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對應(yīng)的內(nèi)容,這是一個同步接口。

參數(shù)說明:

參數(shù) 類型 必填 說明
key String 本地緩存中的指定的key
data Object/String 需要存儲的內(nèi)容

示例代碼

try {
   wx.setStorageSync("key","value")
} catch (e) {
}

wx.getStorage(OBJECT)


從本地緩存中異步獲取指定key對應(yīng)的內(nèi)容。

OBJECT參數(shù)說明:

參數(shù) 類型 必填 說明
key String 本地緩存中的指定的 key
success Function 接口調(diào)用的回調(diào)函數(shù),res = {data: key對應(yīng)的內(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對應(yīng)的內(nèi)容

示例代碼:

wx.getStorage({
  key:'key',
  success: function(res){
      console.log(res.data)
  } 
})

wx.getStorageSync(KEY)


?從本地緩存中同步獲取指定key對應(yīng)的內(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)

異步獲取當(dāng)前storage的相關(guān)信息

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 當(dāng)前storage中所有的key
currentSize Number 當(dāng)前占用的空間大小, 單位kb
limitSize Number 限制的空間大小,單位kb

示例代碼:

wx.getStorageInfo({
  success: function(res) {
    console.log(res.keys)
    console.log(res.currentSize)
    console.log(res.limitSize)
  }
})

wx.getStorageInfoSync

同步獲取當(dāng)前storage的相關(guān)信息

示例代碼:

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

  1. tip: 本地數(shù)據(jù)存儲的大小限制為 10MB


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號