如何不让滚动,拖拽频繁的发送请求
防抖:
只要不是最后一次触发,就不执行异步请求。
var timer;
window.onscroll=function(){
//如果timer不是空,说明前面有一个等待的请求,还未发送,就停止前面的等待
if(timer!==undefined){
clearTimeout(timer);
}
//在重新开始下一个等待
timer=setTimeout(function(){
//当200ms内,未发生滚动时,才发送请求
console.log(`发送请求`);
},200);
}
节流:
第一次发送请求后,只要响应没有回来,就不能发送第二次
//定义一个按钮button id为btn
var canClick=true;
btn.onclick=function(){
if(canClick){
canClick=false;
console.log(`发送请求`);
setTimeout(function(){
console.log(`加载完成`);
canClick=true;
},2000)
}
}