防抖的简单理解

85 阅读1分钟

关于防抖,我的理解是单位时间内,频繁触发一个事件, 以'最后一次'触发为准. 通俗来说就是,就是如果用户频繁的触发事件,然后我们设置一个时间,从用户结束触发开始算,过了这个时间,用户还没有再次触发事件.然后就开始事件处理.从而达到减少事件触发的次数. 假设一个点击事件用户连续点击一分钟,我们只处理当他停止点击的那一次事件

image.png

全局中先设置一个定时器id.

设置input的输入事件

当用户第一次输入时,设置一个一次性定时器,定时器内设置清除上一次的定时器和对应的处理函数,此时为第一次使用上一次的定时器没有.清空没有作用.

当用户再触发事件时,再设置一个一次性定时器此时定时器移除上一个定时器.

以此类推...

最后只有最后一个定时器有效果,这个定时器中的处理函数才会生效.

所有在用户频繁的触发事件时只有最后一次的定时器中的处理函数会生效.