微信缓存

知识点1:
微信缓存是指将数据存储在本地缓存中指定的 key 中。 这个key原有的内容会被覆盖。
单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。

知识点2: 本地缓存数据分为同步和异步两种。同步方法有成功回调函数,表示数据处理成功后的操作。

操作 异步方法 同步方法
插入 wx.setStorage wx.setStorageSync
读取 wx.getStorage wx.getStorageSync
删除 wx.removeStorage wx.removeStorageSync
清空 wx.clearStorage wx.clearStorageSync
获取缓存信息 wx.getStorageInfo wx.getStorageInfoSync

以Sync结尾都是同步方法。

知识点3: 同步方法和异步方法的区别是:
*同步方法会堵塞当前任务,直到同步方法处理返回。
*异步方法不会塞当前任务。

代码测试:
1.先调用异步方法,再调用同步方法.

  saveMsg () {
      console.log('save start')
      wx.setStorage({
        key: 'nancy',
        data: '01',
        success: (res) => {
          console.log('异步保存成功', res)
        }
      })
      wx.setStorageSync('nancy2', '02')
      console.log('同步保存成功')
    }
image.png

可以看到,异步方法不会阻挡同步方法的进行.

2.先调用同步方法,再调用异步方法.

  saveMsg () {
      console.log('save start')
      wx.setStorageSync('nancy2', '02')
      console.log('同步保存成功')
      wx.setStorage({
        key: 'nancy',
        data: '01',
        success: (res) => {
          console.log('异步保存成功', res)
        }
      })
    },

image.png

同步会阻塞, 异步方法只有等到同步方法执行成功才能执行。

知识点4: 缓存隔离级别

  • 同一手机,不同小程序应用,不是共享缓存,满足应用级别隔离。
  • 同一手机,同一个小程序,不同微信用户扫码使用,也共享缓存,是用户级别隔离。
  • 同一手机,同一个小程序,同一微信用户两次扫码使用,是共享缓存
  • 同一手机,同一个小程序,不同微信用户切换使用(分别扫码两次),同一个用户共享缓存,不同用户间不共享缓存。

知识点5: 数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
参考资料:
官方文档-wx.setStorage
官方文档-wx.setStorageSync

你可能感兴趣的:(微信缓存)