Cả hai đều giới hạn tần suất một hàm chạy để phản ứng với các sự kiện nhanh, lặp lại — nhưng với các chiến lược thời gian khác nhau.
- Debounce: chỉ chạy hàm sau khi hoạt động dừng lại trong N ms. Reset bộ đếm thời gian ở mỗi lần gọi. → "chờ cho đến khi họ xong."
- Throttle: chạy hàm tối đa một lần mỗi N ms trong suốt hoạt động liên tục. → "chạy ở một tốc độ đều đặn."
text
events: x x x x x x x ........ x x x
debounce: ↑ (kích hoạt một lần, sau khi tạm dừng)
throttle: ↑ ↑ ↑ ↑ (kích hoạt định kỳ)
