Beweeg uw pointer over het vlak en zie ruwe events, gedebouncede aanroepen en gethrottlede aanroepen op één tijdlijn. Debounce- en throttle-functies om te kopiëren, plus React-hooks.
Debounce wacht tot aanroepen een ingestelde tijd stoppen en draait dan één keer, wat past bij zoekvelden en automatisch opslaan. Throttle draait hooguit één keer per interval zolang er aanroepen blijven komen, wat past bij scrollen, resizen en het volgen van de pointer. Beide nemen een functie en een vertraging in milliseconden, en geven een verpakte functie terug die u in plaats daarvan aanroept.
Welke u gebruikt
De twee woorden worden door elkaar gehaald omdat ze allebei beperken hoe vaak een functie draait. Het vlak hieronder toont het verschil op een gedeelde tijdlijn: elk ruw event als een dun streepje, elke gedebouncede en elke gethrottlede aanroep als een stip. Wijzig de vertraging en het patroon verandert mee.
Debounce start zijn timer bij elke aanroep opnieuw en draait pas wanneer de aanroepen pauzeren. Throttle negeert aanroepen binnen het huidige venster, maar draait opnieuw zodra het venster voorbij is, dus het gaat gelijkmatig af tijdens een lange reeks.
De leading edge is de eerste aanroep van een reeks; de trailing edge is het moment waarop het interval van de reeks eindigt. Een trailing debounce draait na de pauze, een leading debounce draait meteen en negeert daarna aanroepen tot de pauze. Throttles kunnen op een van beide edges afgaan, of op allebei.
Nee. De functies op deze pagina zijn elk maar een paar regels. Een bibliotheekversie voegt opties toe zoals maxWait, cancel en flush, die handig zijn maar makkelijk zelf toe te voegen als u er maar één van nodig hebt.
Er is niet één juist getal. Begin rond 300 milliseconden voor typen en 100 voor scroll- of pointerwerk, en stel daarna bij op gevoel. Korter voelt responsiever, maar bespaart minder werk.
Trailing edge. cancel() laat elke openstaande aanroep vallen.
Draait op de leading edge en dan nog één keer aan het einde van het venster als er intussen aanroepen binnenkwamen, zodat de laatste waarde nooit verloren gaat.
Houdt één timer aan voor de hele levensduur van het component, roept altijd de nieuwste callback aan, en wist de timer bij unmount.
Geeft een kopie terug van een snel veranderende waarde die hooguit één keer per interval wordt bijgewerkt.
Ruwe events
Gedebounced ({n} ms)
Gethrottled ({n} ms)
Beweeg over het vlak. Dunne streepjes zijn ruwe events; stippen zijn aanroepen die na debouncen of throttlen echt zijn uitgevoerd.
Vertraging: {n} ms
Eventvlak: beweeg de pointer hier of houd een toets ingedrukt
Beweeg hier (of geef focus en houd een toets ingedrukt)
De tijdlijn toont de laatste zes seconden; de getallen tellen de aanroepen in dat venster.
Wissen
Gratis beginnen · Geen creditcard nodig