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

网站开发人员保密建网站做优化

网站开发人员保密,建网站做优化,有做兼职的网站吗,crm客户端一、防抖和节流主要是干什么的 防抖和节流主要用于控制函数执行的频率#xff0c;通过限制函数的触发次数#xff0c;避免函数被过度调用而引发的性能问题或产生不必要的副作用。 二、防抖 防抖是什么: 1、对于在事件被触发 n 秒后再执行的回调 -- 延迟执行 2、如果…一、防抖和节流主要是干什么的 防抖和节流主要用于控制函数执行的频率通过限制函数的触发次数避免函数被过度调用而引发的性能问题或产生不必要的副作用。 二、防抖 防抖是什么: 1、对于在事件被触发 n 秒后再执行的回调  -- 延迟执行 2、如果在这  n  秒内再次触发事件重新开始计时 防抖的场景: 1、ajax 请求数据 / 提交数据下拉刷新     2、输入验证 注意防抖有两种场景一种是上来就要执行一次一种是在规定的时间后去执行 具体实现 // 第一种写法:普通写法 // 在执行事件之后不会立即执行而是等到定时器时间结束之后才开始执行 /*** * param {*} func 需要执行的函数* param {*} delay 延迟执行的时间* returns */ function debounce(func, delay) {let timer nullreturn function() {clearTimeout(timer)var self thisargu argumentstimer setTimeout(function() {func.apply(self, argu)}, delay);} } /*** 使用 setTimeout 实现防抖。* 在函数被调用时清除之前设置的定时器。* 在延迟时间内连续调用函数时会不断清除之前的定时器并重新设置新的定时器确保只有在最后一次调用后的延迟时间结束后才会执行函数。* 通过闭包保存定时器变量确保每次调用都使用同一个定时器。* 优点是简单易懂缺点是无法立即触发函数只有在延迟时间结束后才会执行函数。*/// 用来测试的方法 function test() {console.log(测试防抖); } // 获取到页面的 dom 节点 let de document.querySelector(.testDebounce); // 使用第一种方法实现防抖 de.addEventListener(click, debounce(test, 2000))// 第二种写法:包含是否立即执行 // 在执行事件之后会立即执行一次剩下的时候就是会在定时器结束才会继续执行 /*** * param {*} func 需要执行的函数 * param {*} delay 延迟执行的时间* param {*} triggleNow 是否立即执行 -- 布尔值* returns */ function debounce(func, delay, triggleNow) {var timer nullvar debounced function() {var self thisvar argu argumentsif (timer) {clearTimeout(timer)}if (triggleNow) {var noTimer !timertimer setTimeout(function() {timer null}, delay)if (noTimer) {func.apply(self, argu)}} else {timer setTimeout(function() {func.apply(self, argu)}, delay)}}debounced.remove function() {clearTimeout(timer)timer null}return debounced } /*** 使用计时器和闭包实现防抖。* 在函数被调用时清除之前设置的定时器。* 如果设置了 triggleNow 参数为 true则在函数第一次被调用时立即执行函数之后的连续调用会在延迟时间结束后才能再次触发函数。* 如果没有设置 triggleNow 或设置为 false则在延迟时间结束后执行函数。* 通过闭包保存定时器变量和函数执行状态确保只有符合条件的调用才能触发函数。* 通过 debounced.remove 方法可以手动移除定时器取消防抖效果。* 优点是灵活性高可以设置立即触发和手动移除定时器缺点是稍显复杂。*/// 用来测试的方法 function test() {console.log(测试防抖); } // 获取到页面的 dom 节点 let de document.querySelector(.testDebounce); // 使用第二种方法实现防抖 de.addEventListener(click, debounce(test, 2000, true)) 三、节流 节流是什么: 1、事件被触发n 秒之内只执行一次事件处理函数 2、无论在这段时间内触发了多少次函数调用只会执行一次 节流的场景: 1、输入验证验证长度等 2、ajax 提交 具体实现 // 第一种写法: // 通过一个变量来判断当前函数的执行状态形成闭包 /*** * param {*} func 需要执行的函数* param {*} delay 延迟执行的时间* returns */ function throttle1(func, delay) {let timer nulllet shouldExecute truereturn function(...args) {if (!shouldExecute) {return}shouldExecute falsetimer setTimeout(function() {func.apply(this, args)shouldExecute true}, delay)} } /*** 具体实现流程:* 使用 setTimeout 实现节流。* 在函数被调用时设置一个延迟定时器并在延迟时间结束后执行函数。* 通过一个标志位 shouldExecute 控制是否执行函数在延迟时间内连续调用函数只会执行一次。* 一旦函数执行完毕将 shouldExecute 设置为 true表示可以再次执行函数。* 优点是延迟时间可以精确控制缺点是在延迟时间内的连续函数调用会被忽略。*/// 用来测试的方法 function test() {console.log(节流数据); } // 获取到页面的 dom 节点 let tt document.querySelector(.testThrottle)// 使用第一种方法实现节流 tt.addEventListener(click, throttle1(test, 2000)) // 第二种写法: // 通过两个时间戳来判断当前函数的执行状态也会形成闭包 /*** * param {*} func 需要执行的函数* param {*} delay 延迟执行的时间* returns */ function throttle2(func, delay) {let timer nulllet begin new Date().getTime()return function() {let self thislet argu argumentslet current new Date().getTime()clearTimeout(timer)if (current - begin delay) {func.apply(self, argu)begin current} else {timer setTimeout(function() {func.apply(self, argu)}, delay)}} } /*** 具体实现流程:* 使用计时器和时间戳实现节流。* 在函数被调用时记录当前时间戳 current。* 如果当前时间戳距离上一次调用时间戳 begin 大于等于设定的延迟时间 delay则立即执行函数并更新 begin 的值为当前时间戳。* 如果当前时间戳距离上一次调用时间戳 begin 小于延迟时间 delay则设置一个延迟定时器在延迟时间结束后执行函数。* 优点是在延迟时间内的连续函数调用不会被忽略缺点是延迟时间不是精确的而是最小延迟时间和连续函数调用之间的时间差*/// 用来测试的方法 function test() {console.log(节流数据); } // 获取到页面的 dom 节点 let tt document.querySelector(.testThrottle)// 使用第二种方法实现节流 tt.addEventListener(click, throttle2(test, 2000)) 总结 防抖和节流都能够优化函数执行频率提升性能控制事件触发频率优化用户输入实现平滑动画等。在需要控制函数执行频率以避免资源浪费、提高交互体验或优化动画效果的场景中防抖和节流都是非常有用的技术手段 如果还是不太能理解他俩的区别之前我在一个评论区看到一个神评“防抖就是回城节流就是放技能”相信看到这句话就能通俗易懂的理解他俩之间的区别了。
http://www.tj-hxxt.cn/news/220157.html

相关文章:

  • 通州区网站建设公司公司网站管理制度
  • 北京通网站建设网站开发的数据
  • 广州网站开发哪家强百度网络营销的概念与含义
  • 建网站选哪个wordpress破解汉化版
  • n怎样建立自己的网站旅游景点网站模板大全
  • 创建自己的网站要钱吗腾讯云wordpress安装教程
  • 淄博云天网站建设推广河北中保建设集团网站
  • 电脑无法登录建设银行网站nginx安装wordpress
  • 黄骅网站建设价格百度竞价广告怎么收费
  • 香河做网站公司枣庄网站建设枣庄
  • 网博士智能建站做黄金理财的网站
  • 钓鱼网站搭建教程app开发公司资质
  • 做网站用的图标seo关键词选择及优化
  • 免费网站源码关键词优化难易
  • 做推文封面的网站电子商务行业的发展趋势
  • 淘宝网站优惠券统一修改怎么做建筑设计公司属于什么行业类别
  • 丰润网站建设手机网站建设专业服务公司
  • 中国互联网百强企业名单海东地区谷歌seo网络优化
  • 石家庄平山网站推广优化百度指数排名
  • 商标注册查询平台百度seo关键词优化排名
  • 做网站平台多少钱织梦网站修改使用教程
  • 哪些网站容易做做微网站的第三方登录界面
  • 东莞快速做网站wordpress博客视频教程
  • 产品网站策划广州网站建设方案维护
  • 做外贸用什么网站比较好巨野网站建设
  • 个人备案可以做门户网站吗it培训机构有用吗
  • 有没有一个网站做黄油视频现在允许做网站吗
  • 西昌有做网站的公司吗C4D有哪些做模型的网站
  • 双语网站模板网络营销整合营销
  • 东莞市网站seo内容优化百度云网盘免费资源