js防抖和节流
防抖和节流的作⽤都是防⽌函数多次调⽤。防抖动是将多次执⾏变为最后⼀次执⾏,节流 是将多次执⾏变成每隔⼀段时间执⾏。假设⼀个⽤户⼀直触发这个函 数,且每次触发函数的间隔⼩于 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()
}
}
}