Bewege den Zeiger über das Feld und sieh rohe Events, Debounce-Aufrufe und Throttle-Aufrufe auf einer gemeinsamen Zeitleiste. Mit kopierbaren Debounce- und Throttle-Funktionen sowie React-Hooks.
Debounce wartet, bis die Aufrufe für eine festgelegte Zeit aufhören, und läuft dann einmal. Das passt zu Suchfeldern und automatischem Speichern. Throttle läuft höchstens einmal pro Intervall, solange weiter Aufrufe kommen. Das passt zu Scrollen, Größenänderungen und Zeigerverfolgung. Beide nehmen eine Funktion und eine Verzögerung in Millisekunden entgegen und geben eine umhüllte Funktion zurück, die du stattdessen aufrufst.
Was du wann verwendest
Die beiden Begriffe werden oft verwechselt, weil beide reduzieren, wie oft eine Funktion läuft. Das Feld unten zeigt den Unterschied auf einer gemeinsamen Zeitleiste: jedes rohe Event als dünner Strich, jeder Debounce-Aufruf und jeder Throttle-Aufruf als Punkt. Ändere die Verzögerung, und das Muster ändert sich mit.
Debounce startet seinen Timer bei jedem Aufruf neu und läuft erst, wenn die Aufrufe pausieren. Throttle ignoriert Aufrufe im aktuellen Zeitfenster, läuft aber wieder, sobald das Fenster vorbei ist. So löst es während einer langen Serie gleichmäßig aus.
Die Leading Edge ist der erste Aufruf einer Serie, die Trailing Edge der Moment, in dem das Intervall der Serie endet. Ein Trailing-Debounce läuft nach der Pause, ein Leading-Debounce läuft sofort und ignoriert dann Aufrufe bis zur Pause. Throttles können an einer der beiden Kanten oder an beiden auslösen.
Nein. Die Funktionen auf dieser Seite bestehen jeweils aus wenigen Zeilen. Eine Bibliotheksversion bietet Optionen wie maxWait, cancel und flush. Die sind praktisch, aber leicht selbst zu ergänzen, wenn du nur eine davon brauchst.
Es gibt nicht den einen richtigen Wert. Beginne mit etwa 300 Millisekunden fürs Tippen und 100 für Scrollen oder Zeigerbewegungen und passe dann nach Gefühl an. Kürzer fühlt sich reaktionsschneller an, spart aber weniger Arbeit.
Trailing Edge. cancel() verwirft einen ausstehenden Aufruf.
Läuft an der Leading Edge und dann noch einmal am Ende des Fensters, falls inzwischen Aufrufe kamen. So geht der letzte Wert nie verloren.
Behält einen Timer für die gesamte Lebensdauer der Komponente, ruft immer den neuesten Callback auf und löscht den Timer beim Unmount.
Gibt eine Kopie eines sich schnell ändernden Werts zurück, die sich höchstens einmal pro Intervall aktualisiert.
Rohe Events
Debounce ({n} ms)
Throttle ({n} ms)
Bewege dich über das Feld. Dünne Striche sind rohe Events, Punkte sind Aufrufe, die nach Debounce oder Throttle tatsächlich gelaufen sind.
Verzögerung: {n} ms
Event-Feld: Zeiger hier bewegen oder eine Taste halten
Hier bewegen (oder fokussieren und eine Taste halten)
Die Zeitleiste zeigt die letzten sechs Sekunden, die Zahlen zählen die Aufrufe in diesem Zeitraum.
Leeren
Kostenlos starten · Keine Kreditkarte nötig