10-节流防抖

节流(throttle)
一段时间内时间,单位时间内只会触发一次这个事件,属于降频;
适用场景:拖拽,滚动事件
实现:
function throttle(fn, time) {
let flag = false
return (params) => {
if(flag) return;
flag = true;
setTimeout(() => {
fn(params);
flag = false;
}, time)
}
}
防抖(debounce)
一段时间内时间,只会触发一次这个事件,多余得点击会推迟这个事件的执行
适用场景:表单验证、多次点击防止重复提交
function debounce(fn, time) {
let id = null;
return (params)=>{
if(id) clearTimeout(id);
id = setTimeout(()=>{
fn(params)
}, time)
}
}
Last updated
Was this helpful?