JavaScript防抖与节流详解
小维AI总结
HunYuan-Turbos-Latest
思考中···
前言
当涉及到处理频繁触发的事件或函数时,防抖和节流是两种常用的技术,用于优化性能和改善用户体验。
防抖
防抖用于限制连续触发的事件的执行频率。当一个事件被触发时,防抖会延迟一定的时间执行对应的处理函数。如果在延迟时间内再次触发了同样的事件,那么之前的延迟执行将被取消,重新开始计时。
总结:在单位时间内频繁触发事件,只有最后一次生效
应用场景:
- 用户在输入框输入字符时,全部输入完成才发送请求
- 鼠标悬浮在图表时,将 ToolsTip 里的数据回显到头部(避免多次请求后端接口)
Vue 中实现防抖
1 | // 防抖方法,传入函数和延迟 |
监听 echarts 的 tooltip 事件
1 | let charts = document.getElementById('line_charts') |
监听 input 输入框
1 | const inputDOM = document.getElementById('input') |
节流
节流是一种限制函数执行频率的技术。它可以确保在某个时间段内,函数不会被连续触发执行,而是以一定的时间间隔执行。
总结:一段时间内只执行一次
应用场景:
- 验证码刷新
- 窗口滚动
- 鼠标点击等频繁触发的事件
通用节流函数
1 | // 节流:一段时间内只执行一次 |
评论





