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

前端 JS 经典:防抖和节流函数

1. 防抖函数

防抖函数(Debounce Function)用于处理频繁触发的事件,确保在事件触发后的一段特定时间内,如果再次触发则重新计时,只有在这段时间内没有再次触发时,才真正执行相应的函数。

以下是一个简单的防抖函数的实现示例:

function debounce(func, delay = 1000) {let timer;return function (...args) {clearTimeout(timer);timer = setTimeout(() => {func.apply(this, args);}, delay);};}// 使用示例function handleMove(event) {console.log(`鼠标 X 坐标: ${event.clientX}, 鼠标 Y 坐标: ${event.clientY}`);}document.addEventListener("mousemove", debounce(handleMove));

2. 节流函数

节流函数(Throttle Function)用于限制函数在一段时间内的执行频率。

以下是一个简单的节流函数的实现示例:

function throttle(func, delay = 1000) {let timer = null;return function (...args) {if (!timer) {timer = setTimeout(() => {func.apply(this, args);timer = null;}, delay);}};}function printMessage() {console.log("节流函数执行");}window.addEventListener("click", throttle(printMessage));

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【计算机网络】CIDR无分类编址知识学习
  • 【机器学习】ImageNet的基本概念以及如何使用ImageNet数据集
  • 商品期权会爆仓吗?
  • java-activiti笔记
  • OceanBase V4.2特性解析:简化分区表重命名功能
  • 0101中文乱码-BufferedImage-图片处理
  • 搭载海光3350处理器的高速流量处理模块(用于高速网络数据处理设备应用)
  • Java设计模式-抽象工厂模式-一次性理解透
  • 爬虫配置代理:保护隐私有效地抓取数据
  • C#多线程并发编程深度探索:解锁async、await、Task与lock等关键字的奥秘
  • 【生成式人工智能-八-大型语言模型的能力评估】
  • JAVA集中学习第五周学习记录(二)
  • Spring Boot 快速入门样例【后端 3】
  • Linux Shell实例
  • Python 通过UDP传输超过64k的信息
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • C语言笔记(第一章:C语言编程)
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • echarts花样作死的坑
  • Gradle 5.0 正式版发布
  • Kibana配置logstash,报表一体化
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Mysql数据库的条件查询语句
  • Node 版本管理
  • 精彩代码 vue.js
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 力扣(LeetCode)357
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 在Mac OS X上安装 Ruby运行环境
  • 06-01 点餐小程序前台界面搭建
  • scrapy中间件源码分析及常用中间件大全
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • ### RabbitMQ五种工作模式:
  • #DBA杂记1
  • (1)Jupyter Notebook 下载及安装
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)母版页和相对路径
  • (转)详解PHP处理密码的几种方式
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .bashrc在哪里,alias妙用
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net core使用ef 6
  • .net(C#)中String.Format如何使用
  • .net2005怎么读string形的xml,不是xml文件。