一、防抖(debounce)
- 作用:高频率触发的事件,在指定的单位时间内,只响应最后一次,如果在指定的时间内再次触发,则重新计算时间
- 类似于回城8秒,如果回城中被打断,再次回城需要再等8秒
- 应用场景:搜索提示;搜索时不断输入,用防抖来节约请求资源
| function debounce(callback: (...args: unknown[]) => unknown, delay: number) { |
| let timer: number | NodeJS.Timeout |
| return function (...args: unknown[]) { |
| clearTimeout(timer) |
| timer = setTimeout(() => { |
| callback.apply(this, args) |
| }, delay) |
| } |
| } |
二、防抖(throttle)
- 作用:限定事件在一定时间内只能执行一次
- 节流类似于平A,受攻速的限制
- 应用场景:监听滚动条滚动加载数据,即边滚动边加载;鼠标多次点击只触发少次
| function throttle(callback: (...args: unknown[]) => unknown, delay: number) { |
| let timer: number | NodeJS.Timeout | null |
| return function (...args: unknown[]) { |
| if (!timer) { |
| timer = setTimeout(() => { |
| callback.apply(this, args) |
| timer = null |
| }, delay) |
| } |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」