为什么要防抖
有的操作是高频触发的,但是其实触发一次就好了,比如我们短时间内多次缩放页面,那么我们不应该每次缩放都去执行操作,应该只做一次就好。再比如说监听输入框的输入,不应该每次都去触发监听,应该是用户完成一段输入后在进行触发。
总结:等用户高频事件完了,再进行事件操作。
设计思路:事件触发后开启一个定时器,如果事件在这个定时器限定的时间内再次触发,则清除定时器,在写一个定时器,定时时间到则触发。
防抖存在一个问题,事件会一直等到用户完成操作后一段时间在操作,如果一直操作,会一直不触发。比如说是一个按钮,点击就发送请求,如果一直点,那么请求就会一直发布出去。这里正确的思路应该是第一次点击就发送,然后上一个请求回来后,才能再发。
总结:某个操作希望上一次的完成后再进行下一次,或者希望隔一段时间触发一次
设计思路:我们可以设计一种类似控制阀门一样定期开放的函数,事件触发时让函数执行一次,然后关闭这个阀门,过了一段时间后再将这个阀门打开,再次触发事件。
博客介绍了防抖的概念,如高频触发操作只需执行一次,像缩放页面、监听输入框输入。阐述了防抖设计思路,即事件触发开定时器,限定时间内再触发则清除重设。还指出防抖存在的问题,如一直操作不触发,并给出解决方案,设计类似控制阀门的函数。

被折叠的 条评论
为什么被折叠?



