防抖(Debounce)
一种在计算机编程中常用的技术,用于限制某个函数在一定时间内只能执行一次。当一个事件在短时间内被触发多次时,防抖技术可以确保该事件处理函数只执行一次。这在处理用户输入、动画渲染等场景中非常有用,可以提高性能并减少不必要的计算。
Debounce可以将小于规定时间间隔(如100 ms)内的函数调用,归并成一次函数调用
实际上在iOS中用到的挺多的例如按钮的防止重复点击,网络请求的防重复提交
节流(Throttle)
Throttle通常指节流阀或油门,用于控制发动机的燃料供应,从而调节发动机的速度和功率
Throttle使得函数在规定时间间隔内(如100 ms),最多只能调用一次。
iOS中用到的挺多的例如按钮的防止重复点击,网络请求的防重复提交用Throttle也是一样的
区别
Debounce和Throttle都旨在控制事件的处理,但Debounce主要用于忽略冗余的触发,而Throttle则侧重于限制事件处理的频率。
Debounce常用于用户界面的事件处理,如按钮点击;而Throttle更多用于限制数据流或网络请求,如API调用频率的限制。
总结
Debounce和Throttle其实挺相近的,用的好的话可以节约很多资源,避免很多问题