Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Was ist Debounce in JavaScript und warum ist es wichtig?

Beitrags-Cover: Was ist Debounce in JavaScript und warum ist es wichtig?
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.

Virtueller Cloud-Server: Was ist das und was sind seine Besonderheiten
3. Jan '25, 10:58 Uhr

Virtueller Cloud-Server: Was ist das und was sind seine Besonderheiten

[Fix] Heroku / SearchBox-Addon - Indexierungsfehler "Der Client kann den Server nicht als Elasticsearch verifizieren"
31. Jan '25, 13:09 Uhr

[Fix] Heroku / SearchBox-Addon - Indexierungsfehler "Der Client kann den Server nicht als Elasticsearch verifizieren"

6. Feb '25, 15:31 Uhr

Fehlerbehebung [DEPRECATION] #adapters ist veraltet. Verwenden Sie stattdessen #profiles. (Codecov / docile)

Was ist ein Promise in JavaScript und wie versteht man das Wesentliche schnell?
18. Feb '25, 11:01 Uhr

Was ist ein Promise in JavaScript und wie versteht man das Wesentliche schnell?

Die Struktur von Promise (JavaScript) und wie man damit arbeitet
18. Feb '25, 14:33 Uhr

Die Struktur von Promise (JavaScript) und wie man damit arbeitet

Was ist Memoization (Beispiele für Ruby und Ruby on Rails)?
20. Feb '25, 18:16 Uhr

Was ist Memoization (Beispiele für Ruby und Ruby on Rails)?

Was ist CFB (Cipher Feedback)?
21. Mär '25, 16:53 Uhr

Was ist CFB (Cipher Feedback)?

Was ist XOR und wie funktioniert es?
21. Mär '25, 17:05 Uhr

Was ist XOR und wie funktioniert es?

Embedded-Programmierung: Was ist das und wo fängt man an
24. Mär '25, 16:48 Uhr

Embedded-Programmierung: Was ist das und wo fängt man an

Pessimistische Sperre in Rails: was ist das und wann sollte man sie anwenden? Welche Alternativen gibt es?
31. Mär '25, 17:45 Uhr

Pessimistische Sperre in Rails: was ist das und wann sollte man sie anwenden? Welche Alternativen gibt es?

Warum überspringt PostgreSQL die ID beim Speichern neuer Einträge? (Heroku)
31. Mär '25, 19:13 Uhr

Warum überspringt PostgreSQL die ID beim Speichern neuer Einträge? (Heroku)

[Codecov] Was ist der Unterschied zwischen Patch- und Projektabdeckung?
9. Apr '25, 16:03 Uhr

[Codecov] Was ist der Unterschied zwischen Patch- und Projektabdeckung?