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

JS手写代码篇---手写节流函数

8、节流函数

什么是节流函数?

指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。

与防抖函数有什么区别?

防抖函数是延迟函数执行,直到事件停止触发一段时间后再执行,适用于需要等待事件停止触发后再执行的场景。而节流函数则是控制函数在指定时间内只执行一次,适用于需要控制执行频率的场景。

   function throttle(fn, wait) {let preTime = new Date();return function () {let context = this;let args = arguments;let curTime = new Date();let during = curTime - preTime;if (during > wait) {// 当时间大于等待时间的时候// 执行函数fn.apply(context, args);// 更新 preTimepreTime = curTime;}};}

() => {
fn.apply(context , args);//保证函数的上下文和参数与原始调用时一致
} , wait)
}
}


## 8、节流函数**什么是节流函数?**指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。**与防抖函数有什么区别?**防抖函数是延迟函数执行,直到事件停止触发一段时间后再执行,适用于需要等待事件停止触发后再执行的场景。而节流函数则是控制函数在指定时间内只执行一次,适用于需要控制执行频率的场景。

function throttle(fn, wait) {
let preTime = new Date();
return function () {
let context = this;
let args = arguments;
let curTime = new Date();
let during = curTime - preTime;
if (during > wait) {
// 当时间大于等待时间的时候
// 执行函数
fn.apply(context, args);
// 更新 preTime
preTime = curTime;
}
};
}


相关文章:

  • allWebPlugin中间件VLC专用版之截图功能介绍
  • 评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
  • 历年西安交通大学计算机保研上机真题
  • 异步并发控制代码详细分析
  • WEB3——什么是ABI
  • 《TCP/IP 详解 卷1:协议》第2章:Internet 地址结构
  • <PLC><socket><西门子>基于西门子S7-1200PLC,实现手机与PLC通讯(通过websocket转接)
  • 云原生微服务架构演进之路:理念、挑战与实践
  • 小型图书管理系统案例(用于spring mvc 实践)
  • MicroPython+L298N+ESP32控制电机转速
  • Wi-Fi 切换 5G 的时机
  • 公链地址生成曲线和算法
  • 【NLP入门系列一】NLP概述和独热编码
  • c/c++的opencv霍夫变换
  • LLM 使用 MCP 协议及其原理详解
  • Glide NoResultEncoderAvailableException异常解决
  • 安装启动Mosquitto以及问题error: cjson/cJSON.h: No such file or directory解决
  • leetcode:7. 整数反转(python3解法,数学相关算法题)
  • Python学习(5) ----- Python的JSON处理
  • IDEA 在公司内网配置gitlab
  • 图书馆网站建设调查问卷/seo百度关键词优化软件
  • 网站资源做缓存/百度提交网站入口
  • 卫生局网站建设实施方案/东莞seo技术培训
  • 做淘宝优惠网站步骤/网络营销是做什么的工作
  • 外贸快车智能建站/百度网盘客服人工电话95188
  • 厚街网站建设公司/郑州seo技术代理