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

免费网站制作推广陕西的网站建设公司排名

免费网站制作推广,陕西的网站建设公司排名,永康网站优化,ps怎样做网站首页图个人博客:haichenyi.com。感谢关注 一. 目录 一–目录二–防抖三–节流四–进阶应用五–总结 二. 防抖(Debounce) 防抖(Debebounce)和节流(Throttle)都是前端开发中用于优化高频事件性能的两…

个人博客:haichenyi.com。感谢关注

一. 目录

  • 一–目录
  • 二–防抖
  • 三–节流
  • 四–进阶应用
  • 五–总结

二. 防抖(Debounce)

  防抖(Debebounce)和节流(Throttle)都是前端开发中用于优化高频事件性能的两种技术。他们的核心目的是减少函数的不必要的调用频率,但实现方式和场景有所不同。
  原理: 事件触发后,开始计时,若在规定时间内,没有再触发该事件,则执行事件。若在规定时间内,又触发了该事件,则重新计时。
  适用场景: 输入框的搜索事件,窗口大小调整,按钮的点击事件等等

function debounce(func, delay) {let timer;return function (...args) {//清空上一次的定时器clearTimeout(timer)timer = setTimeout(() => {//绑定this关键字和参数,并立即执行//apply,call,bind三者的区别,前面的博客中讲过了func.apply(this, args)}, delay);}
}// 使用示例
const searchInput = document.getElementById('search');
searchInput.addEventListener('input', debounce(function() {console.log('发起搜索请求');
}, 500));

  特点:

  • 高频操作停止后才会执行
  • 若高频操作不停止,则该事件永远不会执行

三. 节流(Throttle)

  原理: 在规定时间间隔内,不论事件触发多少次,函数只会执行一次。
  适用场景​​: 滚动事件(scroll)、鼠标移动(mousemove)、游戏中的射击频率限制等。

function throttle(func, delay) {let lastTime;return function (...args) {let now = Date.now()if (now - lastTime >= delay) {func.apply(this, args)lastTime = now}}
}// 使用示例
window.addEventListener('scroll', throttle(function() {console.log('处理滚动事件');
}, 200));

  特点:

  • 不管事件触发多少次,都按照固定频率执行,稀释执行的次数。
  • 保证高频操作下函数周期性执行。

四. 进阶应用

(4.1)立即执行的防抖,第一次触发立即执行,后续触发防抖:

function debounce(func, delay) {let timer;return function (...args) {//如果timer是空,则立刻执行let immediately = !timer//第一次调用timer就是空,则立刻执行,短时间内再次触发,清空上一次的定时器,clearTimeout(timer)if (immediately) {func.apply(this, args)}timer = setTimeout(() => {timer = null}, delay);}
}

(4.2)头节流(Leading)​:期望第一次触发立即执行

function throttle(func, delay) {let lastTime = 0;return function (...args) {let now = Date.now()// 计算剩余时间(若首次触发则剩余时间 <= 0)let remaining = delay - (now - lastTime)if (remaining <= 0) {func.apply(this, args)lastTime = now}}
}

(4.3)尾节流(Trailing):保证最后一次触发,逻辑会执行

function throttle(func, delay) {let timer = null;return function (...args) {if (!timer) {timer = setTimeout(() => {func.apply(this, args)timer = null}, delay);}}
}

五. 总结

特性​防抖​节流​
执行时机​高频事件结束后,规定时间内执行高频事件按照频率执行
适用场景​输入框,提交按钮等滑动事件,动画渲染
极端情况​持续触发,不会执行持续触发时,函数按规律执行

​防抖​​: 合并多次操作为一次,适合“最终状态”场景(如输入停止后搜索)。
​​节流​​: 稀释执行频率,适合持续高频事件(如滚动事件)。

推荐使用Lodash的方法,不需要自己手动去写,了解防抖节流的原理即可。

http://www.dtcms.com/wzjs/576864.html

相关文章:

  • 在线文库网站建设长治做网站
  • 做租赁的行业网站seo顾问是干什么
  • 做贷款在那些网站找客户兰州门户网站建设
  • 问答论坛网站建设免费制作小程序平台
  • 优秀手机网站版式全国网站开发赛
  • 知名网站域名被抢注wordpress通知
  • 网站开发表格整体页面居中牡丹江免费信息网
  • 开发网站广州论文网站建设目标
  • 东莞市官网网站建设怎么样android网站开发实例
  • 自己做链接网站互联网做视频网站需要许可证吗
  • 免费网站建设是什么建设银行代发工资清单网站
  • 无锡网站建设课程软件外包行业
  • 网站的后台管理员系统建设教程wordpress+v4.1
  • 临沂企业网站开发官网荥阳做网站推广
  • 购物网站开发djangowordpress移动主题puck
  • 网站 概念设计深圳最好的营销网站建设公司哪家好
  • 南阳做网站推广什么是网络营销?网络营销有哪些内容?
  • 用网站ip做代理做电商需要知道的几个网站吗
  • 怎么用自己电脑做服务器发布网站学院网站建设分工
  • 怎么做返利网站深圳最好的品牌设计公司
  • 网站权限控制网站重大建设项目公开发布制度
  • 绘本馆借阅网站开发会计培训班要多少钱
  • 宁波企业网站seoit美工做网站
  • 公众号的微网站怎么做上杭网站开发
  • 赣州企业网站建设wordpress仪表盘访问不了
  • 自己做网站除了域名还要买什么网站建设600元全包
  • 河北住房建设厅网站首页网络推广商城网站
  • 学完js了可以做哪些网站常用企业网站模板对比
  • 网站建设网站徒手整形北京app开发网络公司
  • 最低价做网站网站为什么做优化ppt