小程序数据缓存介绍

如果要开发一个完整的小程序,那么使用数据缓存是必不可缺的。

每个微信小程序都可以有自己的本地缓存,可以通过相关 API 接口对本地缓存进行读写和清理。请注意,不要使用缓存来存储运行时的数据传递或全局状态管理。启动过程中过多的同步读写存储,会显著影响启动耗时。 隔离策略:同一个微信用户,同一个小程序 storage 上限为 10MB。storage 以用户维度隔离,同一台设备上,A 用户无法读取 B 用户数据;不同小程序之间也无法互相读写数据。清理策略:本地缓存的清理时机跟代码包一样,只有在代码包被清理的时候本地缓存才会被清理。

写入缓存,将数据存储到本地缓存中指定的 key 中。会覆盖原来该 key 的内容。除非用户主动删除或因存储空间原因被系统清理,否则数据一直可用。单个 key 允许存储最大数据长度为 1MB,所有数据存储上限为 10MB。

 // 同步函数
    try {
      wx.setStorageSync('key', 'value')
    } catch (e) {
      // 有异常
     }
    // 异步函数
    wx.setStorage({
      key:"key",
      data:"value"
      success() {
        // 设置成功
      }
    })

读取缓存,从本地缓存中读取指定 key 的内容。

// 同步函数
    try {
      var value = wx.getStorageSync('key')
      if (value) {
        // Do something with return value
      }
    } catch (e) {
      // Do something when catch error
    }
    // 异步函数
    wx.getStorage({
      key: 'key',
      success (res) {
        console.log(res.data)
      }
    })

删除缓存,可以从本地缓存中删除指定 key,也可以清理缓存所有 key。

  // 删除key
    wx.removeStorage({
      key: 'key',
      success (res) {
        console.log(res)
      }
    })
    // 或者
    try {
      wx.removeStorageSync('key')
    } catch (e) {
      // Do something when catch error
    }
    // 清理缓存
    wx.clearStorage()
    // 或者
    try {
      wx.clearStorageSync()
    } catch(e) {
      // Do something when catch error
    }