问题
微信小程序云开发是很方便,减少了后端的大量工作,但是!
流量主的一点广告费,一不小心就全被腾讯薅走了!当然一种办法就是使用云服务器自建后端,也要付费,没有对比过,不知道各种成本加起来是否比云开发便宜?有大神请指教!
另外一种办法就是尽量减少不必要的函数调用,也许就是我们自己开发时,为了小程序的完美展现,进行了大量即时调用,当用户数量少时还无所谓,当用户数量增大后,调用次数一天几十万的增加。每万次0.5元,一天的广告费才30几元,资源付费就用了170万*0.5=85元,入不敷出啊,必须优化函数调用。
解决问题
一、 使用globalData全局数据类型
跨页面存取数据,不要不同页面都去请求获取云数据,但重启小程序后会消失。
二、使用wx.getStorage本地缓存
既可跨页面存取数据,重启小程序后也不会消失,比如存放用户信息,不用每次打开小程序都要访问云数据,我之前就是每次重启小程序就访问云数据库获取用户信息,浪费了不少调用次数。
三、降低数据刷新类函数的刷新频次
这里与小程序自带的周期性调用函数功能不一样,就是用户不需要固定周期刷新数据,而是用户打开该页面时,若超过我们自定义的冷却时间时,数据才会刷新,否则不刷新,不再次调用云数据。用户不点击该页面,也不会自动刷新数据。
使用wx.setStorage存储打开该页面的首次时间,下次打开该页面时用当时的时间和这个时间对比做对比。
wx.setStorage({
key: "beginTime_myteam",
data: new Date(),
})
若间隔时间大于10分钟,则调用云数据,重新设置beginTime。否则不执行。
wx.getStorage({
key: 'beginTime_myteam',
success(res) {
console.log('myteam页beginTime:', res.data)
let beforTime = res.data
let nowTime = new Date()
console.log('myteam页nowTime:', nowTime)
let interval = nowTime - beforTime
console.log('myteam页时间差:', interval)
if (interval > 600000) { //间隔600秒
that.call_searchMyTeam()
wx.setStorage({
key: "beginTime_myteam",
data: new Date(),
})
}
}
})
}
进行以上优化后,云资源的调用次数,大大减少了,节省的都是Money。文章来源:https://www.toymoban.com/news/detail-492749.html
点击下面链接,可以下载上述完整代码:
降低小程序数据刷新类函数的刷新频次javaScript代码文章来源地址https://www.toymoban.com/news/detail-492749.html
到了这里,关于微信小程序开发-云开发降低资源调用次数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!