微信小程序开发-云开发降低资源调用次数

问题

微信小程序云开发是很方便,减少了后端的大量工作,但是!
微信小程序开发-云开发降低资源调用次数_第1张图片

流量主的一点广告费,一不小心就全被腾讯薅走了!当然一种办法就是使用云服务器自建后端,也要付费,没有对比过,不知道各种成本加起来是否比云开发便宜?有大神请指教!

微信小程序开发-云开发降低资源调用次数_第2张图片
另外一种办法就是尽量减少不必要的函数调用,也许就是我们自己开发时,为了小程序的完美展现,进行了大量即时调用,当用户数量少时还无所谓,当用户数量增大后,调用次数一天几十万的增加。每万次0.5元,一天的广告费才30几元,资源付费就用了170万*0.5=85元,入不敷出啊,必须优化函数调用。
微信小程序开发-云开发降低资源调用次数_第3张图片

解决问题

一、 使用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。

点击下面链接,可以下载上述完整代码:
降低小程序数据刷新类函数的刷新频次javaScript代码

你可能感兴趣的:(微信小程序开发,微信小程序,小程序,javascript)