1. 程式人生 > >JavaScript節流函式

JavaScript節流函式

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); } }; };