形象地理解throttle和debounce

216 阅读1分钟

在学习的时候,总喜欢把throttle和debounce放一起研究,在网上一些文章其实已经说的很明白了。但总是在用到的时候,心存一丝犹豫:应该是节流?还是防抖?这是初学者很容易产生的疑惑。

比如这篇文章:www.jianshu.com/p/566c66aaf…

文章里列了很多例子和举证,也有形象的表达方式,也有拿电梯来做比拟的。

比如这篇文章:www.jianshu.com/p/a1a900315…

但最重要的是,不要尝试去找两者之间的关系,本着“这两个不是一回事”的想法,重新回味了一下关于节流和防抖的内容。然后尝试着从字面意思去理解,感觉这样可能会更清楚一些。

这两个,从字面意思来讲,一个叫截流,一个叫反弹。

截流就相当于有个水管子(事件),你想从这里接一桶水(接满一桶就执行),但它一直在出水(频发),所以就发明了个工具叫“水龙头”(throttle),可以用它来控制水流,进而控制接满一桶水的时间。想接满另一桶的时候得等前一桶接满。

反弹就相当于一个蹦蹦球,大家小时候肯定都玩过,你有好多蹦蹦球,一个一个的往外扔,但因为距离太近,前几个反弹回来的时候你正在扔下一个,所以你只能接住最后一个。