定义:
防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间,多次触发合并为一次执行。
节流,就是指连续触发事件但是在 n 秒中只执行一次函数。节流会稀释函数的执行频率。
防抖
function debounce(fn, wait) {
let timeout
return function () {
let self= this,args = arguments
timeout && clearTimeout(timeout)
timeout = setTimeout(() => {
fn.apply(self, args)
}, wait)
}
}
节流
function throttle(fn, wait) {
let timeout;
return function() {
let self= this,args = arguments
if (!timeout) {
timeout = setTimeout(() => {
timeout = null;
fn.apply(self, args)
}, wait)
}
}
}
网友评论