防抖与节流

用定时器实现

防抖:在某一时间段内,多次接到同一事件,只执行最后一次触发的事件。比如一个按钮在1s内连续触发多次,而我们设置的时间间隔是1s,则只执行最后一次的点击事件。

function fangdou(fn,dealy){

    var t = null;

    return function(){

        if(t){

            t = null;

        }

        t = setTimeout(function(){

            this.apply(fn,arguments);

        },dealy)

    }

}


节流:在某一时间段内,多次接到同一事件,执行第一次触发的事件。比如一个按钮在1s内连续触发多次,而我们设置的时间间隔是1s,则只执行第一次的点击事件。

function jieliu(fn,dealy){

    var t = null;

    return function(fn,arguments){

        if(!t){

            t = setTimeout(function(){

                this.apply(fn,arguments);

                t = null;

            },dealy);

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。