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

教学资源网站建设方案网站被泛解析

教学资源网站建设方案,网站被泛解析,建筑工程水平防护网,wordpress关健词防抖和节流的实现 什么是防抖和节流实现防抖和节流防抖节流 防抖和节流的应用场景 什么是防抖和节流 防抖和节流是前端开发中常用的两种性能优化技术。 为什么需要防抖和节流呢#xff1f; 两者目的都是为了防止某个时间段内操作频繁触发#xff0c;造成性能消耗。 防抖 两者目的都是为了防止某个时间段内操作频繁触发造成性能消耗。 防抖在事件被触发 n 秒后再执行回调如果在这 n 秒内事件又被触发则重新计时。 节流 n 秒内只执行一次事件即使n 秒内事件重复触发也只有一次生效。 可能很多人看了概念还是不太清楚这两者到底有什么区别下面就通过一个简单的案例来说明。 let btn document.getElementById(btn) //模拟发送请求 function req(){console.log(发送请求) } btn.addEventListener(click, req)以上代码简单实现了一个点击按钮的事件每点击一次按钮就调用一次函数发送请求效果如下 如果对函数做了防抖时间设为1秒效果是下面这样的 1秒内不管点击了多少次按钮事件都不会被触发只有当不再点击按钮后过了1秒事件才被触发。 如果对函数做了节流时间设为1秒效果是下面这样的 1秒内不管点击了多少次按钮事件都只被触发一次。 因此两者的区别防抖是一段时间内只执行最后一次节流是一段时间内只执行一次。 如下图所示 实现防抖和节流 防抖 实现思路使用闭包来保存定时器变量 timer。事件触发后开启一个定时器如果在 delay 时间内再次触发事件就会清除之前的定时器 并设置一个新的定时器直到 delay 时间内不再触发事件定时器到达时间后执行传入的函数 fn。 function debounce(fn, delay 1000) {let timer null;// 这里返回的函数是每次用户实际调用的防抖函数return function(...args) { // 如果已经设定过定时器了就清空上一次的定时器if(timer) {clearTimeout(timer); }// 开始一个新的定时器延迟执行用户传入的方法timer setTimeout(() { //这里必须是箭头函数不然this指向window,要让this指向fn的调用者fn.apply(this, args); }, delay) } }节流 实现思路同样使用闭包来保存定时器变量 timer。每次触发事件时如果定时器不存在就设置一个定时器并在 delay 时间后执行传 入的函数 fn。如果在 delay 时间内再次触发事件由于定时器还存在就不会执行传入的函数 func。 function throttle(fn, delay 500) {let timer null;return function(...args) {// 当前有任务了直接返回if(timer) {return;}timer setTimeout(() {fn.apply(this, args);timer null; //执行完后需重置定时器不然timer一直有值无法开启下一个定时器}, delay)} }节流还有一种更简单的时间戳版本思路就是两次触发的时间间隔到了指定时间就执行否则不执行。 function throttle(fn, delay 1000) {let prev Date.now();// 上一次执行该函数的时间return function(...args) {let now Date.now();//当前时间// 如果差值大于等于设置的等待时间就执行函数if (now - prev delay) {fn.apply(this, args);prev Date.now();}}; }防抖和节流的应用场景 防抖的主要应用场景是优化搜索框的输入用户在不断输入值时用防抖来节约请求资源当用户最后一次输入完再发送请求。 // 使用防抖优化搜索框输入 const searchInput document.getElementById(input); function req() {// 发送请求获取搜索结果console.log(发送请求...); } searchInput.addEventListener(keyup, debounce(req, 500));节流的主要应用场景是优化滚动事件当用户滚动页面时会频繁触发滚动事件。使用节流函数可以控制滚动事件的触发频率避免过多的计算和渲染操作提高页面的性能和流畅度。 // 使用节流优化滚动事件 window.addEventListener(scroll, throttle(function() {// 滚动到底部加载更多console.log(加载更多...); }, 500));以上就是本文的分享了如有错误欢迎指正
http://wiki.neutronadmin.com/news/66777/

相关文章:

  • 海口 做网站网站开发要什么样的环境
  • 网站做淘宝客大连哪个公司做网站开发的
  • 大连网站建设哪个好济南正规的网站制作
  • 注册网站域名有什么用官网抖音下载
  • 如何给网站划分栏目可以做h5网站
  • 做平面的就一定要做网站吗现在做网络推广都有什么方式
  • 携程网站建设的意义wordpress+挂马+清除
  • 网站域名备案查询网页视频怎么下载到本地手机
  • 网站开发包括建设主题网站的顺序是什么
  • 连云港北京网站建设wordpress 缩略图代码
  • 如何做查询网站视频网站点击链接怎么做
  • 为什么做的网站别的浏览器打不开怎么办恶意网站怎么办
  • 手机移动端网站是什么云服务器做网站一般配置
  • wordpress 左上角w去掉seo岗位要求
  • 平面设计网站排行榜wordpress 禁用功能
  • 做汽车网站费用网页制作工具中文版
  • 做私人网站 违法开一个网站_只做同城交易
  • 小昆山网站建设如何通过网站做网上报名系统
  • 傻瓜式网站开发旅游网站设计的优点
  • 烟台网站制作效果网站排名监控工具
  • 网站建设模板是什么seo技术
  • 金环建设集团网站学校网站建设的难点
  • 柳州网站建设找华仔网站建设工作台账
  • 怎么形容网站做的好h5做怎么做微网站
  • php可以做网站列举至少五个网络营销方式
  • 网站开发使用数据库的好处如何建设内网网站
  • 外部网站跳转小程序网站开发人员招聘广告语
  • 深圳网站关键词优化公司做网站需要几大模板
  • 电子商务网站建设总结怎样查看网站是用什么做的
  • 发布网站需要多大空间网站检测报告那里做