浅谈 Underscore.js 中 _.throttle 和 _.debounce 的差别[转]

看的文章来自: https://blog.coding.net/blog/the-difference-between-throttle-and-debounce-in-underscorejs函数

使用场景

只要牵涉到连续事件或频率控制相关的应用均可以考虑到这两个函数,好比:.net

  • 游戏射击,keydown 事件
  • 文本输入、自动完成,keyup 事件
  • 鼠标移动,mousemove 事件
  • DOM 元素动态定位,window 对象的 resize 和 scroll 事件

 

文章里有个比喻很形象code

  • throttle 策略的电梯。保证若是电梯第一我的进来后,15秒后准时运送一次,不等待。若是没有人,则待机。
  • debounce 策略的电梯。若是电梯里有人进来,等待15秒。若是又人进来,15秒等待从新计时,直到15秒超时,开始运送。

 

评论里也很精彩:对象

throttle:触发-上次动做执行时间〉大于限制时间->执行动做,记录执行时间
debounce:触发-记录触发时间-上次动做触发时间〉大于限制时间-执行动做blog

-----------游戏

能看明白了吧。事件

throttle  : 定时定点underscore

debounce : 做延迟处理class

相关文章
相关标签/搜索