欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:505

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据

发布时间:2020-11-24  

分享者:kingrome2017,来自原文地址

 

上篇:

 

前言

页面缓存的设置优化了页面加载,减少了频繁的调取接口,使用户在断网的情况下有更好的体验。

每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)可以对本地缓存进行设置、获取和清理。本地缓存最大为10MB。

注意: localStorage 是永久存储的,但是我们不建议将关键信息全部存在 localStorage,以防用户换设备的情况。

 

项目需求

通过使用scroll-view 自定义的鼠标滚动事件onscrollLower,监听页面下拉事件

page.init()的方法里封装了请求数据的接口,后台api文档自带分页pageSize,默认值为10,-1为请求全部数据。

说明:

触发下滑事件通过与页面data缓存数据对比,去请求接口。

 

代码实现

 

var n=0

page.init = function(callback) {

page.data.loading = true;

n+=10;

cardService.listFavoriteCards(n,function(result){

var cards = result.data.favoriteCards;

var starCards = result.data.starCards;

 

starCards.sort(function(c1,c2){

var c1Name = pinyingUtil.getInitials.convertPinyin(c1.name);

var c2Name = pinyingUtil.getInitials.convertPinyin(c2.name);

 

return c1Name > c2Name ? 1 : -1;

});

 

if(starCards && starCards.length> 0) {

starCards.forEach(function(c){

var compressEntName = dictService.compressEntName(c.companyName);

c.compressEntName = compressEntName;

});

}

 

page.setData({

"favoriteCards" : cards,

"starCards" : starCards,

"filterType" : "name",

"groups" : cardService.groupCardsByNameFirstLetter(cards),

"loadding":false

});

wx.setStorageSync("setgroups",page.data.groups)

});

};

 

}

 

onLoad: function (options) {

 

var geigroups=wx.getStorageSync('setgroups')

var result =[]

for(var i=0; i<geigroups.length; i+=5){

result.push(geigroups.slice(i,i+5));

}

var resultd=result[0]

if(geigroups){

page.setData({

"groups" : resultd

});

console.log('缓存')

}else{

if (wx.getStorageSync("token")) {

page.init();

page.initProfile();

} else {

App.addListener("evt_login", function () {

page.init();

page.initProfile();

});

}

console.log('正常')

}

}

 

onscrollLower:function(){

var page = this;

var geigroups=wx.getStorageSync('setgroups') //第一步拿数据

var result =[] //定义空数组

var n=0; //定义index

for(var i=0; i<geigroups.length; i+=10){

result.push(geigroups.slice(i,i+10));

} //把数据每10个一组push到 result里面

n+=1;

 

var q=this.data.groups.length;

if(geigroups){ //如果有缓存

if(geigroups.length<=q) //如果当前data的数据少于缓存执行以下命令

if (wx.getStorageSync("token")) { //如果有token请求数据

page.init();

page.initProfile();