JavaScript节流函数

版权声明:本文为博主原创文章,转载请注明出处。如对文章知识有关问题欢迎评论和右侧chat快问提出。 https://blog.csdn.net/sir1241/article/details/78388129
var throttle = function(fn, delay, mustRunDelay){
    var timer = null;
    var start;
    // 这里是利用一个闭包来保存变量,避免污染全局变量
    return function(){
        var context = this,
        args = arguments,
        current = +new Date();
        clearTimeout(timer);
        if(!start){
            // 设置开始时间标记
            start = current;
        }
        if(current - start >= mustRunDelay){
            fn.apply(context, args);
            start = current;
        }
        else {
            timer = setTimeout(function(){
                fn.apply(context, args);
            }, delay);
        }
    };
 };

猜你喜欢

转载自blog.csdn.net/sir1241/article/details/78388129
今日推荐