小程序数据缓存介绍
如果要开发一个完整的小程序,那么使用数据缓存是必不可缺的。
每个微信小程序都可以有自己的本地缓存,可以通过相关 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
}