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

品鉴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);}};
}

相关文章:

  • 2025年—ComfyUI_最新插件推荐及使用(实时更新)
  • 2942. 查找包含给定字符的单词
  • 【AI News | 20250523】每日AI进展
  • 文件夹图像批处理教程
  • NLP学习路线图(六):数据处理与可视化
  • Vue框架1(vue搭建方式1,vue指令,vue实例生命周期)
  • Symbol、Set 与 Map:新数据结构探秘
  • 关于gt的gt_data_valid_in信号
  • RV1126+FFMPEG多路码流监控项目大体讲解
  • 实现tdx-hs300-mcp
  • uni-app学习笔记十--vu3综合练习
  • 深入了解linux系统—— 操作系统的路径缓冲与链接机制
  • DeepONet深度解析:原理、架构与实现
  • 判断C表达式是否成立
  • 函数式编程思想详解
  • SQL每日一题(4)
  • 【动态规划】简单多状态(二)
  • 枚举类扩充处理
  • 前端框架6
  • 解决 Supabase “permission denied for table XXX“ 错误
  • 国外的浏览器/河池网站seo
  • 2345网站入口/搜索指数
  • 南宁网站设计方案/ios aso优化工具
  • 长春做网站qianceyun/网络营销费用预算
  • 网站整站html/视频推广渠道有哪些
  • 类似聚划算的网站怎么建设/seo研究中心道一老师