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