漫谈防抖和节流的应用

发布于 6 年前
1 分钟阅读

防抖节流在很多需要限制操作频率的地方会用到。常见的应用场景就是竞技游戏。

游戏中的施法前摇就是使用了防抖。施法 CD 就是使用了节流。

在 DOTA 游戏中,撼地神牛的沟壑施法时需要把图腾取出来然后抡下来出现沟壑,这样技能才算施放完成。从开始施法都施放完成需要 0.69s。这个就是施法前摇。

在施法前摇的过程中,可以通过按 S 键打断施法,这时技能未能施放,不会进入 CD。

当施放完成后技能就会进入 15s 的 CD 期,等到 CD 完成后才可以继续施放技能。


前端中的防抖和节流

在前端中,防抖经常会被用到异步结果搜索上。当持续输入关键字时不会触发搜索,只有当停止输入一段时间之后才会触发。类比于游戏,相当于在施法前摇期间打断并重新施法。

节流经常被用在短信验证码上,例如设置了 60s 的间隔。那么每 60s 最多发送一条验证码,和每 60s 最多施放一次技能同理。


防抖和节流使用上的区别

从游戏这个案例中,我们可以发现防抖主要是侧重于当前的操作,例如游戏中神牛手抖按到了 F 键,这个时候其实可以通过 S 键中断这次施法。在异步结果操作中输错了关键字,可以使用删除键删掉关键字。

节流更关注的是下一次的操作,设置了固定 CD 可以保证在 CD 期间使用不了技能。在登录注册操作中,我们会在点击按钮之后禁用这个按钮,其实这也是一种节流的行为,相当于设置了一个无限长的 CD。

通过游戏这个例子,我们也可以看出,其实防抖和节流是可以一起使用的。

  • 前端中的防抖和节流
  • 防抖和节流使用上的区别