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

dw网页设计制作网站的成品运城网站建设公司

dw网页设计制作网站的成品,运城网站建设公司,wordpress 打开好慢,怎样制作网站教程哪家好手写防抖debounce 应用场景 当需要在事件频繁触发时#xff0c;只执行最后一次操作#xff0c;可以使用防抖函数来控制函数的执行频率,比如窗口resize事件和输入框input事件#xff1b; 这段代码定义了一个名为 debounce 的函数#xff0c;它接收两个参数#xff1a;fn…手写防抖debounce 应用场景 当需要在事件频繁触发时只执行最后一次操作可以使用防抖函数来控制函数的执行频率,比如窗口resize事件和输入框input事件 这段代码定义了一个名为 debounce 的函数它接收两个参数fn一个需要被防抖处理的函数和 delay一个延迟时间单位是毫秒。防抖(debounce)技术的主要目的是限制某个函数在一定时间内只执行一次即使在这段时间内被频繁调用。这对于优化性能特别有用比如避免因快速连续触发事件如窗口调整大小、输入验证等而造成的不必要的计算或 DOM 操作。 下面是代码的逐行解析 let timer null;在这个函数作用域内声明一个变量 timer并初始化为 null。这个变量将用来存储 setTimeout 的返回值即一个可以被清除的计时器标识。return function () { ... };debounce 函数返回一个新的匿名函数。这样做是因为我们希望返回一个经过防抖处理的新函数而不是直接修改原函数。这种设计模式称为“闭包”返回的函数能够访问外部函数debounce中的局部变量如 timer。if (timer) clearTimeout(timer);每次新的返回函数被调用时首先检查 timer 是否存在且不为 null。如果存在这意味着之前已经设置了一个定时器但尚未执行。此时通过 clearTimeout 清除这个定时器从而取消即将执行的 fn 调用。timer setTimeout(() { fn.apply(this, arguments); }, delay);这里设置一个新的定时器。当过了 delay 毫秒后内部的箭头函数会被执行它通过 apply 方法调用原始函数 fn并确保 this 的上下文以及传给防抖函数的所有参数都能正确传递给 fn。apply 的第一个参数 this 保证了在 fn 被调用时能保留正确的上下文环境特别是当 fn 是对象的方法时第二个参数 arguments 是一个类数组对象包含了所有传入的参数。 function debounce(fn, delay) {let timer null;return function () { 如果此时存在定时器的话则取消之前的定时器重新记时if (timer) clearTimeout(timer);// 设置定时器使事件间隔指定事件后执行timer setTimeout(() {fn.apply(this, arguments);}, delay);};} 应用 !DOCTYPE html html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title /headbodyinput typetext idmyInputdiv iddisplay/div /body script// 假设这是你的去抖动函数 function debounce(fn, delay) {let timer null;return function () {if (timer) clearTimeout(timer);timer setTimeout(() {fn.apply(this, arguments);}, delay);};}// 这是你想要在输入框内容变化时执行的函数function updateContent(event) {// 获取输入框的值const inputValue event.target.value;// 更新某个元素的内容例如一个显示框displayElement.textContent inputValue;}// 获取输入框和显示框的元素const inputElement document.getElementById(myInput);const displayElement document.getElementById(display);// 为输入框绑定事件监听器并使用去抖动函数//将返回的函数绑定到相应的事件处理程序上以实现防抖的效果。inputElement.addEventListener(input, debounce(updateContent, 500)); // 延迟500毫秒 /script/html 展示 function debounce(fn,delay){ let timernull; return function(){ if(timer) clearTimeout(timer); timersetTimeout(()fn.apply(this,arguments),delay) }}
http://www.w-s-a.com/news/106441/

相关文章:

  • 网站建设与管理 市场分析上海网站建设公司排名
  • 怎么将公司网站设成首页网址关键词查询网站
  • 怎么用ps做网站ui邱县专业做网站
  • 国开行网站毕业申请怎么做大连旅顺口旅游攻略
  • 鲜花店网站源码成都专做婚介网站的公司
  • 合肥企业网站建设工哈尔滨公告
  • 华强北 做网站互联网服务平台入口
  • vi设计案例网站微信导航网站 dedecms
  • 青浦区做网站设计图片手绘图片
  • 做网站的基本功制作网站公司推荐
  • 阿里云快速建站教程个人网站 费用
  • 广东购物网站建设微信公众号制作模板免费
  • 阿里国际站韩语网站怎么做让移动网站
  • 北京外包做网站如何报价中国几大网络推广公司
  • 中国建设部网站关于资质wordpress 建app
  • 程序员找工作的网站哈尔滨建设信息网站
  • 公司 网站 方案高考写作网站
  • 网站后台如何登陆网站开发需求逻辑图
  • 市级档案网站建设情况分析server2008做DNS与网站
  • 公积金门户网站建设方案网站建设代理平台怎么做
  • 网站建设知识论文抖音开放平台是干什么的
  • 网站建设期末试卷大气简洁网站
  • 电子商务网站建设报告范文单位做网站怎么做
  • 优质的外国网站qq小程序在哪里打开
  • 商务网站建设与推广实训报告免费素材网站无水印
  • 外贸站seoapp开发公司历程概述
  • 沈阳网站推广¥做下拉去118cr陶瓷企业 瓷砖地板公司网站建设
  • 医院网站官方微信精神文明建设我做服装设计师的 求推荐资源网站
  • 微信网站建设需要那些资料昆明cms模板建站
  • 安庆网站建设兼职中企动力是500强吗