【前端进阶】基于防抖与节流的性能优化

文章目录

函数节流和函数防抖都是在限制被触发函数的执行次数,以解决函数触发频率过高导致浏览器响应速度跟不上出现的卡顿、延迟现象,这也就是前端的性能优化。

1.防抖

理解:函数防抖即是事件被触发n秒(自己规定的时间)后再执行函数,如果在这n秒内被用户再次触发这个函数,则重新计时,也就是从触发函数起,再过n秒才执行函数。在触发函数后,执行函数前,你再去触发这个函数,它又从0开始计时到n才执行函数。

最常见的防抖就是百度搜索,当我们输入一些搜索关键字(不点击enter键),在n秒内不再输入内容,则浏览器会自动发起请求。但是如果在这n秒内还输入内容,则它不会发起请求。这就节省了网络请求达到性能优化。

一句话:在触发到执行函数过程中,如果还触发函数,最后执行的是最后一次触发的函数。

防抖函数(普通写法):

	      var debounce = function (func, delay) {
   
	        let timer = null;
	        return function () {
   
	          //这里是一个闭包
	          var that = this,
	            args = arguments; //arguments是这个function传入的参数
	          if (timer) {
   
	            clearTimeout(timer); //在执行前再次触发需要时间清零
	            timer = setTimeout(function () {
   
	              func.apply(that, args);
	            }, delay);
	          }
	        };
	      };
	      function myFunc(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值