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

debounce and throtlle

debounce

      // 核心:单位时间内触发>1 则只执行最后一次。//excutioner 可以认为是执行器。执行器存在则清空,再赋值新的执行器。function debounce(fn, delay = 500) {let excutioner = null;return function () {let context = this;let args = arguments;if (excutioner) {clearTimeout(excutioner);}excutioner = setTimeout(() => {fn.apply(context, args);}, delay);console.log("excutioner", excutioner);};}const clickFun = params => {console.log("this is click Fun", params);};const butt = document.getElementById("clickBut");//传参的2种方式butt.addEventListener("click",debounce(() => clickFun(100), 1000));// butt.addEventListener("click", debounce(clickFun, 1000).bind(this, 100));

throtlle

// 单位时间内触发>1次 只执行第一次function throttle(fn, delay = 1000) {let excutioner = null;return function () {const context = this;const args = arguments;if (!excutioner) {excutioner = setTimeout(() => {fn.apply(context, args);excutioner = null;}, deplay);}};}const butt2 = document.getElementById("clickBut2");//传参butt.addEventListener("click",throttle(() => clickFun(100), 1000));

注: //在 JavaScript 中,arguments 是一个类数组对象,它表示传递给一个函数的参数集合。通过使用 arguments
对象,你可以在函数内部访问到传递给该函数的所有参数,即使你在函数声明中没有明确指定这些参数。

http://www.lryc.cn/news/219162.html

相关文章:

  • 四、数据库系统
  • Linux中的高级IO
  • 项目管理之如何估算项目工作成本
  • Redis主从复制基础概念
  • 图数据库Neo4j概念、应用场景、安装及CQL的使用
  • 路由器基础(四): RIP原理与配置
  • 红外遥控开发RK3568-PWM-IR
  • go-sync-mutex
  • 高并发系统设计
  • Vue3-Pinia快速入门
  • Python算法——插入排序
  • Java21新特性
  • 4 Tensorflow图像识别模型——数据预处理
  • SpringBoot整合RabbitMQ学习笔记
  • 在校园跑腿系统小程序中,如何设计高效的实时通知与消息推送系统?
  • 求极限Lim x->0 (x-sinx)*e-²x / (1-x)⅓
  • JavaScript数据类型详细解析与代码实例
  • .NET Framework中自带的泛型委托Func
  • 深入理解JVM虚拟机第十七篇:虚拟机栈中栈帧的内部结构
  • uniapp中地图定位功能实现的几种方案
  • JS功能实现
  • connect-history-api-fallback原理
  • Android ConstraintLayout分组堆叠圆角ShapeableImageView
  • Docker Stack部署应用详解+Tomcat项目部署详细实战
  • Compose-Multiplatform在Android和iOS上的实践
  • XXL-JOB 默认 accessToken 身份绕过导致 RCE
  • 7 库函数之复位和时钟设置(RCC)所有函数的介绍及使用
  • 第十七节——指令
  • 优雅的 Dockerfile 是怎样炼成的?
  • 2023-2024 中国科学引文数据库来源期刊列表(CSCD)