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
03. Jan, 10:58 Uhr

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

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

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

meme code
meme code@memecode
06. Feb, 15:31 Uhr

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

meme code
meme code@memecode
Was ist ein Promise in JavaScript und wie versteht man das Wesentliche schnell?
18. Feb, 11:01 Uhr

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

meme code
meme code@memecode
Die Struktur von Promise (JavaScript) und wie man damit arbeitet
18. Feb, 14:33 Uhr

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

meme code
meme code@memecode
Was ist Memoization (Beispiele für Ruby und Ruby on Rails)?
20. Feb, 18:16 Uhr

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

meme code
meme code@memecode
Was ist CFB (Cipher Feedback)?
21. Mär, 16:53 Uhr

Was ist CFB (Cipher Feedback)?

meme code
meme code@memecode
Was ist XOR und wie funktioniert es?
21. Mär, 17:05 Uhr

Was ist XOR und wie funktioniert es?

meme code
meme code@memecode
Embedded-Programmierung: Was ist das und wo fängt man an
24. Mär, 16:48 Uhr

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

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

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

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

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

meme code
meme code@memecode
[Codecov] Was ist der Unterschied zwischen Patch- und Projektabdeckung?
09. Apr, 16:03 Uhr

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

meme code
meme code@memecode