使用微信小程序开发的时候,需要用scroll-view的bindscrolltolower事件,控制加载下一页的内容。有可能多次下拉同一次请求或者下拉滚动一次触发两次事件,导致重复加载数据。
方案一:是使用setData设置是否在请求中的开关,在多次上拉和服务端数据发送缓慢的请求中,还是会出现多次请求
page{
data{
isRequesting:false
},
bindscrolltolower:function(){
if(this.data.isRequesting){
return false;
}
this.setData({
isRequesting:true
});
//服务端数据请求
wx.request({
...
complete:()=>{
this.setData({
isRequesting:false
});
}
});
}
}
方案二:isRequesting 设置为全局变量(推荐)
let isRequesting = false;
page{
bindscrolltolower:function(){
if(isRequesting){
return false;
}
isRequesting = true
//服务端数据请求
wx.request({
...
complete:()=>{
isRequesting = false
}
});
}
}










网友评论