E企盈营销工具技术服务商 热线:4006-838-530

微信小程序云开发之获取多条数据(大于限制20条)

E企盈直播平台营销卖货系统

前言微信小程序云开发中的获取数据API一次最多获取20条记录,那么怎么获取全部记录呢?方法一利用上拉刷新,每上拉一次(触碰底部时触发function)便获取20条记录,然后与原来记录合并。js// pages/mailbox/mailbox.jsconst db = wx.cloud.database()Page({  /**   * 页面的初始数据   */  data: {email:[],// 邮件email_nums:0//邮件初始数量  },  /**   * 生命周期函数–监听页面加载   */  onLoad: function (options) {    },  /**   * 页面上拉触底事件的处理函数   */  onReachBottom: function () {    wx.showLoading({      title: ‘刷新中!’,      duration: 1000    })        let x = this.data.email_nums + 20    console.log(x)    let old_data = this.data.email    db.collection(‘mail’).orderBy(‘time’,’desc’).skip(x) // 限制返回数量为 20 条      .get()      .then(res => {       // 这里是从数据库获取文字进行转换 变换显示(换行符转换)         res.data.forEach((item, i) => {          res.data[i].content = res.data[i].content.split(‘*hy*’).join(”);        })            // 利用concat函数连接新数据与旧数据      // 并更新emial_nums          this.setData({          email: old_data.concat(res.data),          email_nums: x        })        console.log(res.data)      })      .catch(err => {        console.error(err)      })    console.log(‘circle 下一页’);    },})方法二首先计算出数据的总记录数,假设每次取20条,计算出取几次?最后利用 for循环,一次读出所有数据。jsconst app = getApp().globalDataconst db = wx.cloud.database()  data: {   },  onLoad: function () {    // 这里app.music_num是前面计算出来的记录总数  // 一般是在本界面之前 求出   // 当然在本界面求也是可以的 相对麻烦  // 这里就需要自己去求总数 我就不贴代码了 去开发文档看就行  //  因为 微信小程序的js 是并发 不按顺序执行代码    var total=app.music_num    const batchTimes = Math.ceil(total / 20)    console.log(batchTimes)   //获取需要获取几次     var arraypro=[]          // 定义空数据 用来存储之后的数据    //初次循环获取云端数据库的分次数的promise数组    for (let i = 0; i < batchTimes; i++) {      console.log(i)      db.collection(‘music’).skip(i*20).get({        success: function (res) {          x++          console.log(res.data)                    for (let j = 0; j < res.data.length; j++) {            arraypro.push(res.data[j])          }                    console.log(arraypro)          console.log(x)                  //  这里必须注意微信小程序js中的for循环          //  比如 for(i=0;i<5;i++)          //  结果出来的i 是随机的 并不是c++中的 0 1 2 3 4          //  可能是 1 2 4 0 3          //  这里非常的坑                  if(x==batchTimes){            k.setData({            //  这里arraypro 就是的所有记录            //  把arraypro 赋给自己定义的变量即可             })          }                  }      })          }      },})总结方法一适合类似获取动态、朋友圈之类的,不需要一次性获取完所有记录,随用户使用即时获取就行。方法二适合提取歌单中的音乐等,比如我们有一个歌单,100首歌,肯定是希望打开歌单,歌曲全部出现在界面。虽然这样速度慢了些…更多获取更多资料、代码,微信公众号:海轰Pro回复 海轰 即可小程序

E企盈系统专业开发:万商直播系统开发,直播系统,直播平台系统源码,小程序直播,商城版小程序,分销小程序,小程序定制,微分销,微商,微信分销,微信分销商城,微信分销系统,微信分销管理,微信分销平台,微商代理系统,E企盈是专业的直播小,E企盈是专业的直播小程序,公众号分销系统,营销系统,社群私域流量卖货系统技术开发商,热线:4006-838-530
赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序云开发之获取多条数据(大于限制20条)
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏