微信缓存

作者: 小小小魔仙 | 来源:发表于2018-12-04 10:36 被阅读4次

    知识点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

    相关文章

      网友评论

        本文标题:微信缓存

        本文链接:https://www.haomeiwen.com/subject/mtzpcqtx.html