开发者可以参考以下方法对“限频接口”的调用频率做优化:
- 把上一次调用接口的返回结果缓存下来以供后续逻辑复用,而不是重新调用接口
- 避免在定时循环的逻辑内重复调用“限频接口”
- 避免在页面初始化事件
onLoad
、onShow
、onReady
中调用限频接口,应该在小程序初始化事件onLaunch
中调用
以下是错误用法和正确用法示例:
- wx.getSetting 错误用法:
setInterval(() => {
wx.getSetting()
}, 5000)
- wx.getSetting 正确用法:
let setting
wx.getSetting({
success(res) {
setting = res
}
})
// 在需要获取地理位置时
if (setting.authSetting['scope.userLocation']) {
wx.getLocation({
success(res) {},
fail(res) {
if (res.errMsg.indexOf('auth deny') >= 0) {
// 如果权限没有开,引导用户打开设置页开启地理位置授权
}
}
})
}
- wx.getUserInfo 错误用法:
Page({
onShow() {
wx.getUserInfo()
}
})
- wx.getUserInfo 正确用法:
App({
onLaunch() {
wx.getUserInfo()
}
})