防抖:通过setTimeOut的方式,在一定时间间隔内,将多次触发变成一次触发
function debounce (fn, wait = 1000) {
var timer = null
return function () {
if (timer) {
clearTimeout(timer)
} else {
fn.apply(this, arguments)
}
timer = setTimeout(() => {
timer = null
}, wait)
}
}
节流:减少一段时间的触发频率
function throttle (fn, delay = 1000) {
var begin = 0
return function () {
const cur = Date.now()
if (cur - begin > delay) {
fn.apply(this, arguments)
begin = cur
}
}
}
网友评论