Throttle

JavaScript 🟡 Mid

Definition

Limite l'execution d'une fonction a maximum une fois par intervalle de temps. Contrairement au debounce, garantit une execution reguliere pendant une rafale d'appels.

Analogie

Un robinet a debit controle : meme si tu l'ouvres a fond, l'eau coule toujours a la meme vitesse.

Exemple de code

function throttle(fn, ms) {
  let last = 0;
  return function(...args) {
    const now = Date.now();
    if (now - last >= ms) {
      last = now;
      fn.apply(this, args);
    }
  };
}

Cas d'usage

Scroll handler, mousemove tracking, rate limiting d'appels API cote client.

#core#performance#pattern#interview