什么是防抖和节流有什么区别

本质上是优化高频率执行代码的一种手段

  • 防抖: n 秒后在执行该事件,若在 n 秒内被重复触发,则重新计时
  • 节流: n 秒内只运行一次,若在 n 秒内重复触发,只有一次生效

代码实现

防抖

  function debounce(fn, wait) {
            var timeout = null;
            return () => {
                if (timeout !== null)
                    clearTimeout(timeout);
                timeout = setTimeout(fn, wait);
            }
        }

节流

   function throttle(fn, delay) {
            var lastTime = 0; // 上一次函数触发的时间
            return () => {
                var nowTime = Date.now();
                if (nowTime - lastTime > delay) {
                    fn(); // method.apply(this) 看你用不用箭头函数
                    lastTime = nowTime;
                }
            }
        }

区别

相同点:

目的都是,降低回调执行频率。节省计算资源

不同点

函数防抖关注一定时间连续触发的事件,只在最后执行一次,而函数节流一段时间内只执行一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值