节流防抖
最近在准备一些零碎的知识点,总是分不清楚节流和防抖,所以随手记录一下,也方便自己日后回忆
节流:比如监听一个滚动事件,滚动过程中一直在发起请求,或者拖拽事件中一直在请求,就可以控制时间间隔为每隔一段时间发起一次。
代码如下:
let throttle (func, wait = 50) => { let lastTime = 0 return function(...args) { let nowDate = +new Date() if(nowDate - lastTime > wait) { lastTime = nowDate function.apply(this, args) } } }
防抖:比如提交按钮,用户点击过快时,不希望发起请求,而是发起一次然后间隔一段时间没有再次点击再发起时再去请求,可以使用防抖
代码如下:
1 let debounce(func,wait=50) => { 2 let timer = 0 3 return function(...args){ 4 if(timer) clearTimeout() 5 timer = setTimeout(() => { 6 func.apply(this,args) 7 },wait) 8 } 9 }

浙公网安备 33010602011771号