浅谈一下防抖与节流

防抖与节流是前端性能优化的重要技术手段,也是常见的热门面试题,下面谈一下本人对这个的看法。

防抖:当事件触发之后,并不立刻响应事件,而是过一段时间间隔t才响应。如果在这段时间间隔内,事件再次触发,则取消之前的计时,以当前时刻重新开始计时,仍然要过时间间隔t之后才响应事件。时间间隔t结束后,执行回调函数。若之后事件再次触发,仍然和刚开始一样,须等待时间间隔t才会响应。

防抖常用业务场景:

1.输入框输入联想;

2.在线文档实时保存;

3.浏览器窗口resize。

节流:当事件触发之后,可以立刻响应事件,即执行回调。但回调执行结束后,须等待时间间隔t。在等待期间,若事件再次触发,则忽略。等待期满之后,如果事件再次触发,可以立刻响应事件,响应结束后,再次需要等待时间间隔t,在时间间隔t内的事件触发仍然忽略。总而言之,在事件间隔t之内,事件触发只会响应一次。

节流常用业务场景:

1.鼠标的scroll事件;

2.订单秒杀页面的提交订单按钮。

防抖与节流最终都可以减少事件响应次数来提升前端性能,那它们的主要不同点在于什么呢?

1.防抖主要体现在延迟响应事件,当在延迟期间事件再次触发,则重新计时,开启新的延迟等待期。而节流强调的是一个时间间隔内只会响应处理一次,若在这个间隔内多次触发事件,则会忽略。

2.防抖应用场景是希望事件全部触发后才去响应处理,而节流则是解决高频触发事件带来的性能开销。防抖的等待时间间隔可以很长,比如几秒甚至几分钟,而节流的等待时间间隔则非常短。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值