问题:最近在做微信小程序的某个项目,手机屏幕上,手指上滑加载更多数据的时候,老是出现重复的数据。
解决方案:状态锁和函数节流。
原理:在向服务器请求数据的时候和接收返回的数据,改变某个变量的状态以及延迟函数的执行。
具体代码:
var moreStatus=false;
var timeoutId=null;
performProcessing: function(){
if(!moreStatus){
moreStatus=true;
// 开始向服务器请求数据代码,成功向服务器请求数据之后,改变moreStatus状态
moreStatus=false;
}
},
process: function(){
clearTimeout(timeoutId);
timeoutId = setTimeout(function(){
performProcessing();
}, 100);
}