防抖(debounce)和节流(throttle)
- 防抖:一段时间,多次点击,只保留最后一次事件。
- 节流:一段时间,多次点击,只执行第一次事件,之后的几次事件都会被过滤。
使用场景:
- 防抖:输入框连续输入,停下来之后再触发搜索。连续点击收藏按钮,只请求最后一次的状态
- 节流:防止按钮连续点击,如页面跳转事件,可能会打开多个页面。
其他说法:
- 防抖:连续触发事件时,只执行一次动作。每次触发事件,重新设定周期。
- 节流:一段时间内,触发多次事件,只执行一次动作。周期固定,动作定期执行,响应平滑。
代码实现
Flutter
写法一
1 | class CommonUtil { |
写法二
1 | class CommonUtil { |
结语
参考文章: