【前端】每日回顾知识点——防抖与节流

本文详细介绍了JavaScript中的防抖与节流机制,包括它们的作用、示例应用以及两种实现方式——使用lodash库和自定义手写。重点讲解了这两种技术的底层原理,即闭包和延时器的运用。
摘要由CSDN通过智能技术生成

1.防抖与节流

(1)防抖:在连续快速的触发下,只会执行一次。前面的所有触发都被取消,最后一次执行·在规定的时间之后才会触发。作用:缓存高并发请求。
例如: 在向文本框输入文字会自动搜索,前面所有输入的文字都在触发搜索事件,输入最后一个字后等待一定的时间才真正被触发。

(2)节流: 在规定的间隔时间范围内不会重复触发回调,只有大于这个时间间隔才会触发回调,把频繁触发变为少量触发。 作用:浏览器有充裕的时间解析代码。
例如: 点击发送验证码,频繁点击只会在规定时间5s内触发一次,给你返回一个验证码。

实现方式

两者的底层实现原理都是:闭包和延时器.
防抖技术就是一个定时器,判断多少毫秒内是否存在这个定时器,存在就清除,不存在就调用

//1.  直接使用插件lodash
<script>src="./js/lodash.js"</script>
//function()为需要防抖或者节流的函数
_debounce(function() ,5000) // 防抖
_throttle(function(),5000) // 节流
//2.手撕
// 防抖
function debounce(fn, delay) {
  let timer = null;
  return function() {
    clearTimeout(timer);
    timer = setTimeout(() => {
      fn.apply(this, arguments);
    }, delay);
  };
}
//节流
function throttle(fn, delay) {
  let timer = null;
  return function() {
    if (timer) {
      return;
    }
    timer = setTimeout(() => {
      fn.apply(this, arguments);
      timer = null;
    }, delay);
  };
}
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值