JavaScriptPytanie 05 z 36
What is event bubbling and throttling?
Co to event bubbling i throttling?
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Event bubbling
Kliknięcie elementu potomnego może propagować się do rodziców.
HTML
<div id="parent">
<button id="child">Click</button>
</div>Event może iść:
button
↓
div
↓
body
↓
documentMożna zatrzymać propagację:
JavaScript
event.stopPropagation();Praktyczne zastosowanie to event delegation.
Zamiast dodawać listener do 100 buttonów:
JavaScript
list.addEventListener("click", event => {
if (event.target.matches("button")) {
// obsługa
}
});Throttling
Ogranicza częstotliwość wykonania funkcji.
Np. scroll może wywoływać handler wiele razy na sekundę. Throttle może ograniczyć go do maksymalnie jednego wykonania co 200 ms.
Throttle: wykonuj regularnie, ale nie częściej niż X.
Debounce: poczekaj, aż użytkownik przestanie wykonywać akcję.
Przykład:
scroll → często throttle
search input → często debounceJak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.
Powiązane pytania
- Zadanie: napisz debounce — JavaScript
Przećwicz w kodzie
- Napisz debounce — uruchamia testy w przeglądarce