前端性能优化之必备良品,防抖和节流

1.防抖

         什么是防抖?

         动作绑定事件,触发事件,但不立即执行动作在一定时间后执行,在这段时间内,反复触发时间,则重新等待一定的时间后在执行动作。

         通俗一点讲防抖就是多次触发,在停止触发一定时间后执行操作。常用于搜索时的优化,避免用户未输入完成不停的查询,还有防止多次点击按钮多次请求等等。
         实现代码如下:

debounce(fn, delay) {
  let timer = null;
  return function () {
    if(timer !== null) {
      clearTimeout(timer)
    }
      timer = setTimeout(fn, delay)
    }
  }
}

博主认识的年轻人,最近都在说买房的事情,首付压力太大,月供指出工资余额不足,难上加难。

于是就有了这个公众号,分享我的理财经验和一些专业知识,希望能帮助大家提高睡后收入。

2.节流

         下面我们聊聊节流,节流可以理解为在特定的时间内多次触发,只执行这段时间内的最后一次操作。

         我们来看代码:这里采用的是时间戳+定时器的方式

throttle(fn, delay) {
      let timer = null,
        startTime = new Date();
      return function () {
        let curTime = new Date();
        let remaining = delay - (curTime - startTime);
        clearTimeout(timer)
        if(remaining <= 0) {
          startTime = new Date();
          fn.apply(this, arguments);
        }else {
          timer = setTimeout(fn, remaining)
        }
      }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值