📢 欢迎来到万事技术论坛!本站仅讨论合法编程技术话题,严禁外挂/作弊/黑产/盗版内容,违者封号。

前端防抖(debounce)与节流(throttle)一次讲清

yuki 进阶会员

搜索框输入联想用防抖,滚动/resize 事件用节流。

防抖:事件触发后等 N 毫秒没再触发才执行;
节流:每隔 N 毫秒最多执行一次。

手写一个防抖:
function debounce(fn, wait) {
let t;
return (...args) => { clearTimeout(t); t = setTimeout(() => fn(...args), wait); };
}

需要完整 demo 的我可以贴 CodePen。

楼主 · 2026-09-28 01:20 · 浏览 4
lin_dev 活跃会员

节流那个 demo 能贴吗?我滚动懒加载一直抖。

1楼 · 2026-09-28 01:20
yuki 进阶会员

throttle(fn, wait){let last=0;return (...a)=>{const n=Date.now();if(n-last>=wait){last=n;fn(...a);}};}

2楼 · 2026-09-28 01:20
登录 后即可参与回复。