Dove ha più senso rimandare gli eventi? Considerare l'evento di ridimensionamento di un browser Internet. Il browser può generare una miriade di eventi di ridimensionamento mentre un utente fa clic e trascina per ridimensionare una finestra del browser. Tuttavia, in genere, si finisce con il debouncing della gestione del callback del listener di eventi resize perché di solito si preoccupa solo dell'inizio o della fine di un'azione di ridimensionamento.
Se avessi qualche funzionalità che avrebbe sparato eventi in modo simile, a raffica, avrebbe senso rimbalzare il mio evento dal mio emettitore o ha più senso inviare tutti gli eventi, non importa quanti, e lasciare che gli stessi consumatori si occupino del debouncing?
Considererei il vantaggio del debouncing dalla sorgente di non dover disporre di più debouncer che disseminano il codice ovunque, in modo da consumare i propri eventi, riducendo così la duplicazione del codice. Tuttavia, vedo che il vantaggio del debouncing a livello di ascoltatore è che ottieni una risoluzione molto più alta degli eventi di origine nel caso in cui ne hai bisogno e ottieni un maggiore controllo sul tweaking del ritardo nel debounce per listener.