说明
1、让连续执行的函数,变为固定时间段间断地执行。在一段频繁操作中,可以触发多次,但是触发的频率由自己指定。
2、应用场景有DOM元素的拖拽功能实现、计算鼠标移动的距离等。
还有Canvas 模拟画板功能、搜索联想。
实例
/* @params: func[function]:最后要触发执行的函数 wait[number]:触发的频率 @return 可以被调用执行的函数 */ function throttle(func,wait = 300){ let timer = null, previous = 0;//记录上一次操作时间 return function anonymouse(...params){ let now = new Date(),//记录当前时间 remaining = wait - (now - previous);//记录还差多久达到我们一次触发的频率 if(remaining <= 0){ //两次操作的间隔时间已经超过wait了 window.clearInterval(timer); timer = null; previous = now; func.call(this,...params); }else if(!timer){ //两次操作的间隔时间还不符合触发的频率 timer = setTimeout(() => { timer = null; previous = new Date(); func.call(this,...params); }, remaining); } } }
以上就是javascript函数节流的介绍,希望对大家有所帮助。更多Javascript学习指路:
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。
桦陀教育还为您提供以下相关内容希望对您有帮助:
js函数节流和防抖之间的区分和实现详解
函数节流 函数节流是为了限制函数的执行频率。它的核心思想是,当连续触发事件时,只处理一部分事件,以保证函数的执行频率在可接受的范围内。节流有多种实现方式,常见的是时间节流,即在一段时间内只执行一次函数。例如,滚动事件或窗口大小调整事件就可以使用节流技术进行优化。实现方法一般是利用定时器或...
javascript函数节流和函数防抖之间的区别
节流概念(Throttle)按照设定的时间固定执行一次函数,比如200ms一次。注意:固定就是你在mousemove过程中,执行这个节流函数,它一定是200ms(你设定的定时器延迟时间)内执行一次。没到200ms,一定会返回,没有执行回调函数的。主要应用场景有:scroll、touchmove 防抖概念(Debounce)抖动停止后的时间超过设定...
JavaScript函数节流和函数防抖之间的区别
函数节流是指一定时间内js方法只跑一次。比如人的眨眼睛,就是一定时间内眨一次。这是函数节流最形象的解释。函数防抖是指频繁触发的情况下,只有足够的空闲时间,才执行代码一次。比如生活中的坐公交,就是一定时间内,如果有人陆续刷卡上车,司机就不会开车。只有别人没刷卡了,司机才开车。
JavaScript 函数节流的方法有哪些?
timer) { timer = setTimeout(() => { fn.apply(context, args); timer = null; }, delay); } };}这个throttle函数犹如一个精妙的节流装置,接收两个输入参数:待节流的函数fn和时间间隔delay。它返回一个“节流后”的函数,内部巧妙地运用定时器机制,确保在设定的时间间隔...
细说节流(Throttle)和防抖(Debounce)
前端开发中,节流(Throttle)和防抖(Debounce)是两个不可或缺的性能优化技术。它们旨在限制DOM事件触发的JavaScript执行次数,以提升用户体验。虽然目的相同,但操作方式各有不同。节流,例如每100毫秒限制函数执行一次,即使在10秒内原本会执行1000次,也会将其限制在100次。这对于处理如滚动事件的密集...
【温故而知新】JavaScript的防抖与节流
JavaScript中的防抖和节流技术是提升网页性能的重要工具,它们通过控制函数执行频率来优化用户体验。防抖在搜索框联想和滚动加载更多场景中大显身手,只在用户停止操作后执行,减少请求频率。而节流则用于防止页面滚动事件频繁触发导致卡顿,限制事件触发的频率。尽管两者都是控制频率,但防抖侧重于停止操作后执行...
JS中节流和防抖函数的实现和区别
Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。其中就封装好了节流函数 throttle 和防抖函数 debounce 。参数:返回: (Function): 返回 节流 的函数。例子:参数:返回: (Function): 返回新的 debounced (防抖动)函数。例子:1.节流 :使得一定时间内只触发一次函数...
JavaScript常用方法封装
节流是指在频繁触发事件时,只在指定的时间段内执行事件回调。即只有当触发事件的间隔大于等于指定的时间时,才会执行回调函数。实现call方法可以让一个函数的this指向改变,使其能够访问到其他对象上的属性和方法。实现apply方法与call方法类似,但apply接收一个数组参数,而call接收参数列表。实现bind方法可以...
前端性能优化|什么是防抖和节流?
防抖的核心原理是维护一个计时器,只有在规定时间结束后或触发停止计时条件时,才会执行函数。节流则是检查时间间隔是否已到,无论触发多少次,只执行一次函数。两者都旨在限制事件的执行频率,只是执行时机不同。总结来说,防抖是合并多次操作为一次,而节流保证在一段时间内仅执行一次。在前端开发中,了解...
【跟着大佬学JavaScript】之lodash防抖节流合并
节流函数中:总之,lodashmaxWait部分,尽管参数名多,但实际上就是节流函数中,判断剩余时间remaining。不需要等待,就直接立即执行,否则就到剩余时间就执行一次,依次类推。可以去 查看演示代码 跟着大佬学系列 主要是日常对每个进阶知识点的摸透,跟着大佬一起去深入了解JavaScript的语言艺术。后续会一直...