知识点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
网友评论