一、什么是防抖函数:
防抖函数是指事件多次不间断触发,在一定时间内没有再触发时,执行最后一次触发的事件函数。 举个栗子,你每天给你女神送牛奶,女神从未响应过你的好意,但当你一段时间没有送牛奶时,女神就会开始响应你。这就是一个简单的防抖机制(看来女神精通防抖函数)。
二、作用
那么防抖函数有什么作用呢?我们为什么要学防抖函数呢?
他可以优化前端性能,在一些频繁触发的事件里尤为明显,例如窗口resize事件,屏幕scroll事件,鼠标mousemove事件。因为这些事件触发频繁,如果不用防抖,那么事件的绑定函数会运行无数次,严重影响性能。使用了防抖,就可以实现,当事件在我们规定的延迟时间内不再触发,我们就执行一次事件绑定函数。
三、应用
一、使用Echats等可视化类库实现当窗口宽度变化而变化图形
二、图片、列表懒加载
三、输入框keyup实时搜索
等等.......(想到再补充)
四、实现
本案例实现的是,实时监听用户输入事件,在用户停止输入延迟一秒后执行我们相关的事件处理函数
最终效果:
五:分析
防抖函数本质上是函数闭包的典型应用。利用闭包的特点,将变量常驻内存,实现闭包的函数访问的变量是上次函数运行的值。从而清除定时器任务