浅谈js中的防抖和节流
防抖和节流严格算起来应该属于性能优化的知识,但实际上遇到的频率相当高
1.防抖
1.1应用场景:
列如实际项目中遇到新增,添加之类得功能,每点击一次新增按钮都是发请求,如果我们连续点击多次就会发很多请求,新增很多条数据,这时候我们就需要用到防抖
效果:短时间内大量触发同一事件,只会执行一次函数。
1.2什么是防抖:
简单来说就是短时间内大量触发同一事件,只会执行一次函数
1.3防抖代码的实现:
这是一个按钮,我们让它3秒内只触发一次,主要实现思路:定义一个变量,通过变量控制setTimeout,
在3秒内连续点击时如果有定时器,会把它清空,重新开始
1.节流
1.1应用场景:
列如实际项目中遇到input输入框事件,只要输入就会触发,我们想让它每隔一段时间触发就会用到节流
1.2什么是节流:
简单来说就是一个时间,每隔 3s都会触发一次
1.3节流代码的实现:
这主要实现思路:通过setTimeout来做一个简单的实现,加上一个状态位valid来表示当前函数是否处于工作状态