节流、防抖

节流、防抖

区别

防抖动是将多次执行变为最后一次执行,节流是将多次执行变成每隔一段时间执行。

防抖

  • 就是限制用户手抖、频繁操作
    • 实现多用 setTimeout、clearTimeout

=

在  vue  中,一些组件如 elmentui  提供的属性 loading,就是一个典型的防抖案例:

默认 loading 为 false。发送请求的方法中, 一来就判断 loading 是否为 true 为 true 就 return 出方法。 如果不为 ture。就变赋值为 true,开始发送请求。如此发送请求之间的任何的再次狂点乱点都是无效的。请求成功后再把 loading 置为 false,让下次操作作效。

=

  • 只有在防抖计时完毕之后的操作才是有效果的、比如防抖计时为一秒、就算你在这点击一千次,但每次点击间隔都是小于一秒的、这些操作也只算一次操作。
  • 比如百度搜索框输入文字,自动发送搜索请求,但每次发送索引请求的是有间隔的。是你结束输入一段时间后才会触发的。

》》

节流

类似防抖,但不同。对容易频繁触发的事件,设置请求间隔

  • 在节流的计时内、无论用户有任何操作都忽略该操作、只有等节流计时之后,还检查到用户操作、才执行。然后立马再次触发节流计时
  • 比如滚动条事件

》》


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!