当前位置: 首页 > article >正文

品鉴JS的魅力之防抖与节流【JS】

前言

小水一波,函数的防抖与节流。

文章目录

    • 前言
    • 介绍
    • 实现方式
      • 防抖
      • 节流

介绍

防抖与节流的优化逻辑,在我们的日常开发中,有着一定的地位。

防抖和节流是两种常用的性能优化技术,用于限制某个函数在一定时间内被触发的次数,减少不必要的计算或操作,提高页面性能。

实现方式

在我们日常的工作开发中,我们更多的使用lodash库中的防抖与节流函数,但更多的分享,是了解代码的原理,为了方便不能使用第三方库的时候也能够自己手写去解决对应的需求问题。

防抖

  • 代码原理:
    防抖的原理是确保一个函数在最后一次事件发生后延迟执行。如果在指定的延迟时间内再次触发事件,则重新计时。
  • 代码实现:

function debounce(func, wait) {let timeout;return function(...args) {const context = this;clearTimeout(timeout);timeout = setTimeout(() => {func.apply(context, args);}, wait);};
}

节流

  • 代码原理:
    节流的原理是确保一个函数在指定的时间间隔内最多只执行一次。无论事件触发的频率如何,函数只在时间间隔的开始或结束时执行一次。
  • 代码实现:

function throttle(func, limit) {let inThrottle;return function(...args) {const context = this;if (!inThrottle) {func.apply(context, args);inThrottle = true;setTimeout(() => {inThrottle = false;}, limit);}};
}
http://www.lryc.cn/news/2385151.html

相关文章:

  • 如何使用patch-package给npm包打补丁
  • maxkey单点登录系统
  • windows bat 在目录下(包括子目录)搜索批量指定文件名称复制到另一个文件夹内
  • Notepad++ 下载与安装教程(小白专属)
  • Spring Cloud Gateway 微服务网关实战指南
  • 微服务架构实战:Eureka服务注册发现与Ribbon负载均衡详解
  • 采用多维计算策略(分子动力学模拟+机器学习),显著提升 α-半乳糖苷酶热稳定性
  • 【java】小练习--零钱通
  • 旅游信息检索
  • 贝叶斯理论
  • Docker-mongodb
  • Gartner《Optimize GenAI Strategy for 4 Key ConsumerMindsets》学习心得
  • [ARM][汇编] 02.ARM 汇编常用简单指令
  • 达梦数据库-学习-22-库级物理备份恢复(超详细版)
  • python网络爬虫的基本使用
  • AI Agent开发第74课-解构AI伪需求的魔幻现实主义
  • 【卫星通信】通信卫星链路预算计算及其在3GPP NTN中的应用
  • HTTP请求方法:GET与POST的使用场景解析
  • 第十五章:数据治理之数据目录:摸清家底,建立三大数据目录
  • c++命名空间的作用及命名改编
  • Go核心特性与并发编程
  • echarts实现项目进度甘特图
  • Flutter 中 build 方法为何写在 StatefulWidget 的 State 类中
  • C#串口打印机:控制类开发与实战
  • 2025深圳国际无人机展深度解析:看点、厂商与创新亮点
  • Electron 后台常驻服务实现(托盘 + 开机自启)
  • Spring Boot与Kafka集成实践:从入门到实战
  • 人形机器人通过观看视频学习人类动作的技术可行性与前景展望
  • 第三十四天打卡
  • 打卡day35