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

前端面试题:节流和防抖

节流和防抖都是通过降低事件执行的频率而达到节省资源的效果

节流

一段时间只执行一次,多少秒之后获取验证码、resize 事件和scroll 事件等

类似王者荣耀中的传送,一段时间内只能传送一次,具体实现如下:

function throttle(fn, delay) {let lastTime = 0;return function () {let currentTime = Date.now();if (currentTime - lastTime > delay) {lastTime = currentTime;fn.apply(this, arguments);}};
}

防抖

一段时间内连续触发事件,只执行最后一次,如搜索,手机号、邮箱地址的校验

类似王者荣耀中的回城操作,如果被打断则重新计时,不打断则执行最后一次操作。

代码实现如下:

function debounce(fn, delay) {let timer = null;return function () {if (timer) {clearTimeout(timer);}timer = setTimeout(() => {fn.apply(this, arguments);}, delay);};
}

具体应用实现如下:

&
http://www.lryc.cn/news/284383.html

相关文章:

  • 网络工程师学习笔记——交换机路由器 数据传输
  • 【论文笔记】A Survey on 3D Gaussian Splatting
  • 项目实战————苍穹外卖(DAY11)
  • 非常好用的Mac清理工具CleanMyMac X 4.14.7 如何取消您对CleanMyMac X的年度订购
  • 【51单片机系列】proteus仿真单片机的串口通信
  • 【Qt】对象树与坐标系
  • 【设计模式】腾讯二面:自动贩卖机/音频播放器使用了什么设计模式?
  • 转换操作符转换类型:普通函数指针(普通函数、类的静态函数)、类的成员函数指针
  • 易控智驾高精度地图开发工程师校招一面、二面面经
  • 用VSCode玩STM32的烧录工具 CooCox Cortex Flash Programmer
  • Pycharm无法刷新远程解释器的框架: Can‘t get remote credentials for deployment server
  • c++设计模式之单例模式
  • Git学习笔记(第5章):Git团队协作机制
  • Python 面向对象绘图(Matplotlib篇-16)
  • Linux开机自动挂载window密码有转义字符的共享文件夹
  • Redis(四)
  • 一文解读ISO26262安全标准:术语
  • 使用stable diffussion插件StableSR将图片高清放大
  • ActiveMQ:专注消息传递,助您构建高效稳定的系统
  • 小程序样例1:简单待办列表
  • Jvm相关知识(面试高级必备)
  • android 常规log的查看与抓取
  • 【SpringBoot】—— 如何创建SpringBoot工程
  • 2018年认证杯SPSSPRO杯数学建模A题(第二阶段)海豚与沙丁鱼全过程文档及程序
  • C# tcp客户端字符串(图片名称)+ 图片数据打包,发送到服务端;服务端接收到数据后解析数据包
  • 【机组】算术逻辑单元带进位运算实验的解密与实战
  • axios query传数组参数的格式
  • 2018年认证杯SPSSPRO杯数学建模B题(第一阶段)动态模糊图像全过程文档及程序
  • qt学习:Qfile文件类
  • 从 GPT1 - GPT4 拆解