函数去抖和函数节流
时间:2022-05-11 11:59
函数去抖(debounce):当调用函数n秒后,才会执行该动作,若在这n秒内又调用该函数则取消前一次并重新计算执行时间(频繁触发的情况下,只有足够的空闲时间,才执行代码一次)
function debounce(delay, cb) { let timer return function () { if (timer) clearTimeout(timer) timer = setTimeout(function () { cb() }, delay) } }
函数节流(throttle):函数节流的基本思想是函数预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,然后进入下一个新周期(一定时间内js方法只跑一次。比如人的眨眼睛,就是一定时间内眨一次)
function throttle(cb, delay) { let startTime = Date.now() return function () { let currTime = Date.now() if (currTime - startTime > delay) { cb() startTime = currTime } } }