Procházet zdrojové kódy

Added throttle() to Utils. Debounce() can now accept a scope as an optional argument.

dev-tmpl
Bryan Miller před 5 roky
rodič
revize
173a43348e
1 změnil soubory, kde provedl 26 přidání a 2 odebrání
  1. +26
    -2
      app/js/common/Utils.js

+ 26
- 2
app/js/common/Utils.js Zobrazit soubor

@@ -24,16 +24,40 @@ const utils = {
}
},

debounce:function(func, delay){
debounce:function(func, delay, scope){
var timeout = null;
return function(){
var context = this;
//var context = this;
var context = scope || this;
var args = arguments;
clearTimeout(timeout);
timeout = setTimeout(function(){
func.apply(context, args);
}, delay);
};
},

throttle:function(func, threshold, scope){
threshold || (threshold = 250);
var lst = 0;
var timer;

return function(){
var context = scope || this;
var args = arguments;

var now = Date.now();
if (now < lst + threshold){
clearTimeout(timer);
timer = setTimeout(function(){
lst = now;
func.apply(context, args);
}, threshold);
} else {
lst = now;
func.apply(context, args);
}
};
}
};


Načítá se…
Zrušit
Uložit