防抖和节流的个人观点
1.防抖的话,是你不断的在动,是不会执行请求的,只有你静下来,不动了,才会执行请求
2.节流就是:是有原则的请求,请求触发一次之后,在规定时间内,不会触发请求,超过这个时间,如果你再点击,才会触发请求
所以说节流是有原则的呢
节流的代码
let eWrap=document.getElementById('wrap')function move(e){console.log(e,this)}function jieliu(fn,duration=10000){let timer=0;// 肯定返回的是一个函数return function(...args){// 这里面的this指向和外面的this一样,如果再嵌套一层就不一样了let _self=this// 如果timer 有值,就返回,否则往下执行if(timer){return;}fn.apply(_self,args);timer= setTimeout(function() {clearTimeout(timer)timer=0}, duration); }}eWrap.addEventListener('mousemove',jieliu(move,5000))
防抖的代码
let eWrap=document.getElementById('wrap')function move(e){console.log(e,this)}function fangdou(fn,duration=2000){let timer=0return function(...args){let _self=this;// 如果还是在动的话,就不断的清理定时器clearTimeout(timer)timer=setTimeout(()=>{fn.apply(_self,args)},duration)}}eWrap.addEventListener('mousemove',fangdou(move,1000))