2021
03-05
03-05
Vue2.x-使用防抖以及节流的示例
utils://防抖exportconstdebounce=(func,wait=3000,immediate=true)=>{lettimeout=null;returnfunction(){letcontext=this;letargs=arguments;if(timeout)clearTimeout(timeout);if(immediate){varcallNow=!timeout;//点击第一次为true时间内点击第二次为false时间结束则重复第一次timeout=setTimeout(()=>{timeout=null;},wait);//定时器IDif(callNow)fun...
继续阅读 >
问题的引出在一些场景往往由于事件频繁被触发,因而频繁地进行DOM操作、资源加载,导致UI停顿甚至浏览器崩溃。在这样的情况下,我们实际上的需求大多为停止改变大小n毫秒后执行后续处理;而其他事件大多的需求是以一定的频率执行后续处理。针对这两种需求就出现了debounce和throttle两种解决办法。1.resize事件2.mousemove事件3.touchmove事件4.scroll事件throttle与debounce在现在很多的javascript框架中都提供了这两个...