首页 > 试题广场 >

js的节流和防抖

[问答题]
防抖:300ms内不许触发事件
300ms内不许触发,只有两次触发时间间隔超过300ms,才能触发回调函数的执行。(连续小于300ms高频触发可能一直都无法执行回调,直到停下来才能执行一次)
节流:300ms内不会触发事件回调
300ms内触发无效,超过300ms后触发可以执行一次(即使连续高频触发也可以保证每300ms被触发一次)
编辑于 2021-10-29 11:29:47 回复(0)
节流概念(Throttle) :按照设定的时间固定执行一次函数,比如200ms一次。注意:固定就是你在mousemove过程中,执行这个节流函数,它一定是200ms(你设定的定时器延迟时间)内执行一次。没到200ms,一定会返回,没有执行回调函数的。 主要应用场景有:scroll、touchmove 防抖概念(Debounce) :抖动停止后的时间超过设定的时间时执行一次函数。注意:这里的抖动停止表示你停止了触发这个函数,从这个时间点开始计算,当间隔时间等于你设定时间,才会执行里面的回调函数。如果你一直在触发这个函数并且两次触发间隔小于设定时间,则一定不会到回调函数那一步。 主要应用场景有:input验证、搜索联想、resize
编辑于 2019-10-13 08:55:53 回复(0)
<p>防抖技术可以把多个顺序的调用整合成一次,也就是在一定时间里规定事件的触发次数</p><p>节流技术是一般用于保证在规定事件内至少执行一次我们希望触发的事件,简单来说就是只允许一个函数在X毫秒内执行一次,一般应用于边滑动页面边加载页面数据</p>
发表于 2020-06-04 16:39:28 回复(0)