防抖和节流的作?都是防?函数多次调?。防抖动是将多次执?变为最后?次执?,节流 是将多次执?变成每隔?段时间执?。假设?个?户?直触发这个函 数,且每次触发函数的间隔?于 wait ,防抖的情况下只会调??次,?节流的 情况会每 隔?定时间(参数 wait )调?函数
防抖
function debounce(wait, fun) {
var timer = null;
return function () {
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(() => { fun() }, wait)
}
}
节流
function throttle(wait, fun) {
var valid = true;
return function () {
if (valid) {
valid = false;
setTimeout(() => { valid = true }, wait);
fun()
}
}
}