防抖(debounce)
防抖指在指定时间间隔内重复触发只保留这段时间内的最后一次触发,如果在指定时间内再次触发会重新开始计时。
function debounce (fn, interval) {
var timer
return function () {
var that = this
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(function () {
fn.apply(that, arguments)
}, interval)
}
}
节流(throttle)
节流指在指定时间间隔内只重复触发一次。
function throttle (fn, interval) {
var timer, first = true
return function () {
var that = this
if (first) {
fn.apply(this, arguments)
return first = false
}
if (timer) {
return false
}
timer = setTimeout(function () {
fn.apply(that, arguments)
clearTimeout(timer)
timer = null
}, interval)
}
}
0