关灯
开启左侧

函数防抖和节流

[复制链接]
doubleyong 发表于 2019-5-13 15:41:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
在某些场景下,函数的频繁或者事件的频繁触发会大大降低浏览器的性能,甚至有可能造成浏览器崩溃。
因此针对这类事件要进行优化处理。
函数节流和防抖,两者都是对高频率触发事件进行优化。


防抖动

防抖动就是让用户在执行的动作停止后的x秒执行;
原理:将函数放到未来的某个时间点去执行
在到达这个时间点之前,如果这个函数被调用了,那么将刷新这个时间点

function debounce(func,wait){
            var timeout = null;
            return function(){
                //清除定时器
                clearTimeout(timeout);
                var _this = this;
                var args = arguments;
                //若干秒后执行这个方法
                timeout = setTimeout(function(){
                    func.apply(_this,args);
                },wait);
            }
}


节流

在某个特定的时间点内只会执行一次
button按钮在点击后的三秒内将不会再被响应
function throttle(func,wait){
            var time = false;
            return function(){
                if(time)return ;
                setTimeout(function(){
                    time = false;
                },wait);
                time  = true;
                return func.apply(this,arguments);                     
            }            

---------------------
作者:qq2682828
来源:CSDN
原文:https://blog.csdn.net/qq2682828/article/details/79138607
 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

排行榜
关闭

站长推荐上一条 /1 下一条

官方微信

全国服务热线:

400-0708-360

公司地址:国家西部信息安全产业基地(成都市高新区云华路333号)

邮编:610000    Email:2908503813@qq.com

Copyright   ©2015-2016  EOIT论坛Powered by©Discuz!    ( 蜀ICP备11000634号-7 )