夜光 带你走进微信小程序研发(十二)
夜光序言:
为什么风可以那么温柔地对树说话,而你却永远学不会对我温柔地说话呢。
正文:
数据缓存
每个微信小程序都可以有自己的本地缓存,可以通过数据缓存 API 可以对本地 缓存进行设置、获取和清理。同一个微信用户,同一个小程序 storage 上限为 10MB。
localStorage 以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据。
注意: 如果用户储存空间不足,微信会清空最近最久未使用的小程序的本地缓 存。因此不建议将关键信息全部存在 localStorage,以防储存空间不足或用户换设备 的情况。
数据缓存 API 主要有 5 类,包括数据的存储、获取、移除、清空,以及获取存 储信息,每类均包含同步与异步两种,具体详见表
其中 Sync 为英文单词 synchronization 的前四个字母,表示同步,因此 API 函数 中带有 Sync 后缀的函数为同步函数。同步函数与异步函数之间的区别是,异步不会阻塞当前任务,同步缓存直到同步方法处理完才能继续往下执行。另外异步函数中含有成功回调函数,可用于表示数据处理成功后的操作。
这里以 wx.login()中使用的 wx.setStroage()为例,将通过 wx.request()返回的 openid 存储于本地,方便 openid 的获取,使用 wx.setStorage()的代码示例如下:
wx.setStorageSync('jiaoxue_OPENID', res.data.openid)
编译后,可以在调试器的 storage 面板中看到 openid 以存入本地,Key 的值为 jiaoxue_OPENID,Value 的值为用户的 openid,如图
如果使用 wx.setStorageSync()进行数据存储,可以对数据存储成功后进行操作,
代码较 wx.setStorage()有变化,具体代码如下:
wx.setStorage({
key: 'test',
data: 'begin',
success:function(){
console.log('存储成功')
}
})79
编译后,同样将 openid 存储于本地缓存,并执行成功回调函数,打印出“存储成功”表示存储成功,如图
需要使用本地缓存中的 openid 时,可以用 wx.getStorageSync(‘jiaoxue_OPENID’) 来获取 openid,并赋值给相应的变量。当然 wx.getStorage 也可以,这里不过多赘述。
5. wx.showModal( )
小程序使用 wx.showModel(Object object)显示模态对话框,其中 object 参数说明如表
如果用户没有注册过,会弹出模态弹窗提示用户前往注册,具体代码如下:
if (!res.data.is_register) {
wx.showModal({
title: '提示',
content: '请先注册',
showCancel: false,
confirmText: "确定",
success: function(res) {
wx.navigateTo({
url: '/pages/register/userlogin',
})
}
})
}