节流和防抖

本文深入探讨了函数节流和防抖的区别,指出函数防抖适合于用户停止操作后执行一次事件处理,如滚动条停止后加载数据;而函数节流则适用于在规定时间内确保执行一次事件,如滚动时实时加载内容。总结了两者在无限滚动和窗口改变等场景的应用策略。
摘要由CSDN通过智能技术生成

节流和防抖

https://zhuanlan.zhihu.com/p/501685828

我之前一度不太理解节流和防抖之间的区别,老是容易把它们混为一谈

函数防抖(在上一个函数触发后的规定时间之内,再次触发函数,则会重新计时,也就是函数会被推迟触发,只有事件间隔内的最后一次触发事件才会执行):将多次事件合并成了一个操作,本质上就是在维护一个延时器,规定在指定的时间后触发函数,但是如果在这个期间,事件被再次触发,就会取消之前的延时器从而重新计算时间,这样一来,实际上也就是只有最后一次事件才会执行。

函数节流(函数触发不会被推迟,但是规定时间间隔内只允许触发一次,规定时间内的其他触发会被忽略):一段时间内,只执行一次事件,本质就是判断是否该事件正在执行。

区别:函数节流不管事件触发有多少次,都会保证在规定时间内一定会执行一次真正的事件处理函数,而函数防抖只是在最后一次事件后才触发一次函数。

使用场景

  1. 滚动事件或者窗口大小发生改变时,实际上只需要在用户停止操作的时候,执行一次函数,也就是用户可以一直拉动滚动条或者改变窗口的大小,直到满意的位置或大小停止后才去触发这个函数,因此用函数防抖更合适
  2. 在无限加载页面的场景下,比如淘宝商品列表可以一下向下刷新数据,这种场景下,我们需要在用户滚动屏幕的时候,每隔一段时间做一次ajax请求,而不是等用户停止滚动页面之后再请求数据,这样用户等待的时间就变长了,因此用函数节流更合适。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值