当事件连续触发时,如果一定时间内没有再次触发事件,事件处理函数只会执行一次。如果在设定的时间到来之前事件再次被触发,则延迟将重新开始。比如滚动事件持续触发时,不执行handle函数。当1000毫秒内没有触发scroll事件时,会延迟触发scroll事件。/**description:vue中使用的Debounce函数*paramfnName{String}函数名*paramparam{String}参数*paramtime{Number}延迟时间*return:处理后的执行函数*/functionVueDebounce(fnName,param,time){让超时=null;返回函数(){如果(超时){clearTimeout(超时);}timeout=setTimeout(()=>{this[fnName](param);},时间);};}**节流以防止重复点击按钮**functionthrottle(fnName,param,delay){letvalid=truereturnfunction(){if(!valid){returnfalse}this[fnName](param);//执行函数并在间隔期间将状态位设置为无效valid=falsesetTimeout(()=>{valid=true;},delay)}}
