在学习的时候,总喜欢把throttle和debounce放一起研究,在网上一些文章其实已经说的很明白了。但总是在用到的时候,心存一丝犹豫:应该是节流?还是防抖?这是初学者很容易产生的疑惑。
比如这篇文章:www.jianshu.com/p/566c66aaf…
文章里列了很多例子和举证,也有形象的表达方式,也有拿电梯来做比拟的。
比如这篇文章:www.jianshu.com/p/a1a900315…
但最重要的是,不要尝试去找两者之间的关系,本着“这两个不是一回事”的想法,重新回味了一下关于节流和防抖的内容。然后尝试着从字面意思去理解,感觉这样可能会更清楚一些。
这两个,从字面意思来讲,一个叫截流,一个叫反弹。
截流就相当于有个水管子(事件),你想从这里接一桶水(接满一桶就执行),但它一直在出水(频发),所以就发明了个工具叫“水龙头”(throttle),可以用它来控制水流,进而控制接满一桶水的时间。想接满另一桶的时候得等前一桶接满。
反弹就相当于一个蹦蹦球,大家小时候肯定都玩过,你有好多蹦蹦球,一个一个的往外扔,但因为距离太近,前几个反弹回来的时候你正在扔下一个,所以你只能接住最后一个。