当前位置: 首页 > Web前端 > JavaScript

节流与防抖的实现

时间:2023-03-27 18:25:19 JavaScript

节流节流就是让一段时间内经常执行的代码在一定的时间间隔内执行一次。函数debounce(){让计时器;return(()=>{if(timer)return;timer=setTimeout(()=>{console.log("Throttle");timer=null;},1000);})}dd=debounce();document.onmousemove=function(){dd();}代码思路是每隔一段时间执行一次代码,如果有定时器,直接返回;执行完延时函数后,最后将定时器置为nullreturn(()=>{if(timer)clearTimeout(timer);timer=setTimeout(()=>{console.log("防抖");},1000);})}dd=debounce();document.onmousemove=function(){dd();}代码的思路是,如果有timer,那么就把它清零,重新设置。即不断触发相应的事件,但只执行最后一次触发的逻辑。