找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

微信小程序之上拉加载(分页加载)实例

作者:模板之家 2017-12-2 16:39 1439人关注

来自授权地址上拉加载(分页加载)当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需

来自授权地址上拉加载(分页加载)当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时 ...

 
 
 

加载更多(分页加载)

 

当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时,也浪费用户流量,基于优化的角度来考虑,后台不要一次性返回所有数据,当用户有需要再往下翻的时候,再加载更加数据出来。

 

业务需求:

列表滚动到底部时,继续往上拉,加载更多内容

 

必备参数:

(1)pageindex: 1 //第几次加载

2callbackcount: 15 //需要返回数据的个数

其他参数:

根据接口的所需参数

 

实现原理:

当第一次访问接口时,传递2个必备参数(第1次加载,需要返回数据的个数为15个),和其他参数(需要搜索的字符串)给后台,后台返回第一次数据过来。在请求成功的的回调函数中,判断返回的数据是否>0,是,则取出数据,渲染视图层,并把“上拉加载”显示在列表底部;否,则没有数据可取,并把“没有更多”显示在列表底部,同时把“上拉加载”隐藏掉。

当用户已经滚动到列表底部(这里使用到小程序提供的scroll-view组件的bindscrolltolower事件),触发bindscrolltolower事件,参数pageindex+1,再把2个必备参数(第2次加载,需要返回数据的个数为15个)和其他参数(需要搜索的字符串)给后台,后台把其余的数据返回给前台,前台在原来数据的基础上添加数据。

 

 

示例:

wxml:

[html] view plain copy
 
  1. <view class="search">  
  2.   <view class="search-bar">  
  3.     <view class="search-wrap">  
  4.         <icon type="search" size="16" class="icon-search" />  
  5.         <input type="text" placeholder="请输入搜索内容" class="search-input" name="searchKeyword" bindinput="bindKeywordInput" value="{{searchKeyword}}" />  
  6.     </view>  
  7.     <view class="search-cancel" bindtap="keywordSearch">搜索</view>  
  8.   </view>  
  9.   <view class="search-result">  
  10.     <scroll-view scroll-y="true" bindscrolltolower="searchScrollLower">  
  11.       <view class="result-item" wx:for="{{searchSongList}}" wx:key="unique"  data-data="{{item}}" >  
  12.         <view class="icon{{item.isonly=='0' ? ' nocopyright' : ''}}"></view>  
  13.         <text class="title">{{item.songname}}</text>  
  14.         <view class="subtitle">  
  15.           <text wx:for="{{item.singer}}" wx:key="unique">{{item.name}}</text>  
  16.         </view>  
  17.       </view>  
  18.       <view class="loading" hidden="{{!searchLoading}}">正在载入更多...</view>  
  19.       <view class="loading complete" hidden="{{!searchLoadingComplete}}">已加载全部</view>  
  20.     </scroll-view>    
  21.   </view>  
  22. </view>  


 

 

js:

 

[javascript] view plain copy
 
  1. var util = require('../../utils/util.js')  
  2. Page({  
  3.   data: {  
  4.     searchKeyword: '',  //需要搜索的字符  
  5.     searchSongList: [], //放置返回数据的数组  
  6.     isFromSearch: true,   // 用于判断searchSongList数组是不是空数组,默认true,空的数组  
  7.     searchPageNum: 1,   // 设置加载的第几次,默认是第一次  
  8.     callbackcount: 15,      //返回数据的个数  
  9.     searchLoading: false//"上拉加载"的变量,默认false,隐藏  
  10.     searchLoadingComplete: false  //“没有数据”的变量,默认false,隐藏  
  11.   },  
  12.   //输入框事件,每输入一个字符,就会触发一次  
  13. 邀请

路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)