当前位置: 首页 > Web前端 > JavaScript

javascript中的防抖与节流

时间:2023-03-27 13:02:08 JavaScript

防抖与节流无论是在我们的工作中还是在面试的时候,面试官都会问到这方面的知识。那么防抖和节流到底是什么?它们之间有什么区别?今天和大家聊聊防抖和节流。1、防抖防抖原理:在一定时间内,等待毫秒后,只有最后一次操作才会执行函数。大白话:在一定时间内(我们设定的时间),触发n次后,业务代码不执行。只有在最后一次触发之后,才会再次等待毫秒(我们设置的时间)来执行业务代码。实际应用场景:比如我们可以使用防抖来处理用户重复点击按钮的操作;同时,我们还可以对用户输入框进行处理,获取输入的内容。等等...代码实现:html部分防抖js部分lettimer=null;functiongetclick(){timer!==null&&clearTimeout(timer);timer=setTimeout(function(){console.log('执行业务')},1000)}2.节流节流原理:一定时间内,只能触发一次。大白话:其实字面意思就是在一定时间内(我们设定的时间),只能触发一次。也就是说,在这期间,无论我们操作多少次,都只能触发一次。实际应用场景:比如我们在获取滚动条的位置时,可以通过节流来降低计算频率。等等...代码实现:js部分functionperpetual(){letflag=false;setInterval(()=>{console.log('每秒执行一次')if(!flag){flag=true;lettime=setTimeout(function(){console.log('执行业务代码');flag=假;清除超时(时间)},5000)}},1000);}永久();3。防抖和节流的区别我们在面试的时候,面试官经常会问到它们的区别。在我们谈论差异之前,让我们谈谈它们的相似之处。它们通常用于处理某些持续频繁触发并导致前端性能下降的事件。它们的主要区别在于应用场景不同。节流将持续触发。主要用于一些连续触发的场景,降低触发频率。防抖最后触发主要是为了防止重复频繁点击,获取最终结果。场景。欢迎大家评论,如有不足,希望大佬们指出。