Exécuter une fonction JavaScript une seule fois dans un délai imparti

Concept et utilisation

La fonction Debounce() permet d'exécuter une fonction une seule fois dans un délai imparti.

Fonction

debounce()

Retourne une fonction invocable une seule fois dans un délai imparti.

Syntaxe
debounce(fonction, delai);
Paramètres
fonction(Function)

Le paramètre fonction de la fonction debounce() définit une fonction pour laquelle limiter l'exécution à une seule fois dans un délai imparti.

delai(Number)

Le paramètre delai de la fonction debounce() définit le délai en millisecondes durant lequel la fonction ne pourra plus être invoquée si elle a déjà été invoquée.
Le minuteur est remis à zéro quand le délai est écoulé.
Par défaut, la valeur du délai est "250".

Exemple d'exécution répétée d'une fonction

var delai = 500;
var fonction = function() {
  console.log('Fonction exécutée');
};

var fonction_debounce = debounce(fonction, delai);

fonction_debounce(); // renvoie 'Fonction exécutée'
fonction_debounce(); // ne renvoie rien
setTimeout(fonction_debounce, 1000); // renvoie 'Fonction exécutée'

Code source de la fonction

function debounce(f, d) {
  d = d || 250;
  var t = null;
  return function() {
    var c = this, a = arguments;
    clearTimeout(t);
    t = setTimeout(function() {
      f.apply(c, a);
    }, d);
  };
}
^