InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Wenn Sie jemals mit Ereignissen in JavaScript gearbeitet haben, wie z.B. scroll, resize oder keyup, haben Sie wahrscheinlich bemerkt, dass sie sehr häufig ausgelöst werden können. Zum Beispiel kann das keyup-Ereignis beim Eingeben von Text in ein Suchfeld nach jedem Tastendruck ausgelöst werden. Dies kann eine zusätzliche Belastung für den Browser oder Server verursachen, insbesondere wenn jeder Aufruf eine Anfrage an die API ausführt.
Um solche Probleme zu vermeiden, wird Debounce verwendet – eine Technik, die die Häufigkeit von Funktionsaufrufen einschränkt, indem sie die Ausführung verzögert, bis das Ereignis für einen bestimmten Zeitraum nicht mehr wiederholt wird.
Wie funktioniert Debounce?
Die Idee ist einfach: Wenn ein Ereignis ausgelöst wird, verzögern wir die Ausführung der Funktion um einen bestimmten Zeitraum. Wenn das Ereignis innerhalb dieser Zeit erneut ausgelöst wird, wird der Timer zurückgesetzt und der Countdown beginnt von neuem. Nur wenn das Ereignis stoppt, wird die Funktion ausgeführt.
Beispiel für Debounce in JavaScript
function debounce(func, delay) {
let timeout;
return function (...args) {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), delay);
};
}
// Verwendung von Debounce zur Verarbeitung des Texteingabeereignisses
const input = document.querySelector("#search");
const handleInput = (event) => {
console.log("Suche: ", event.target.value);
};
input.addEventListener("keyup", debounce(handleInput, 500));
In diesem Beispiel aktualisiert jede Eingabe im Suchfeld den Timer, und nur nach 500 ms ohne neue Eingabe wird handleInput ausgeführt.
Wo Debounce verwenden?
- Suchanfragen – um keine Anfragen an den Server bei jedem Tastendruck zu senden.
- Verarbeitung der Fenstergrößenänderung (resize) – um den Browser nicht mit Berechnungen zu überlasten.
- Scroll-Ereignis-Listener – zum Beispiel, um neuen Inhalt beim Scrollen zu laden (endloses Scrollen / endless scroll).
- Auto-Speichern von Formularen – um Daten nur nach Abschluss der Eingabe zu speichern.
- Formularvalidierung – zum Beispiel, um einen freien Benutzernamen zu überprüfen.
Debounce hilft, die Leistung zu optimieren, indem die Anzahl der Funktionsaufrufe reduziert wird, die häufig ausgelöst werden. Dies ist besonders nützlich bei der Arbeit mit häufigen Ereignissen wie Texteingabe, Scrollen oder Fenstergrößenänderungen. Durch die Verwendung von Debounce kann die Benutzerinteraktion verbessert und die Belastung des Systems verringert werden.
Dieser Beitrag hat noch keine Ergänzungen vom Autor.