Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Written by Prashant Basnet
Prashant Basnet, a software engineer at Unisala.com, focuses on software development and enjoys building platforms to share knowledge. Interested in system design, data structures, and is currently learning NLP
If you’ve ever built a search bar or input form that sends API calls, you’ve probably heard of debounce. Or maybe you’ve created a backend API then you've probably heard about rate limiting.
But here’s the question:
What is Debounce?
Debounce is a programming pattern used to delay the execution of a function until a specified time (t milliseconds) has passed since the last time it was invoked.
🧪 Example Use Case: Search Input
If an API is called on every keystroke, it creates a flood of requests.
A debounced function solves this by waiting until typing has stopped (e.g., 300ms pause), then calling the API once.
📌 Application of Debouncing?
No debounce is not only for typing it's a general technique used in many situation where you want to delay execution until the rapid burst of even has settled down.
Typing is just one common use case but debounce can be applied to any rapid event:
The debounce solution:
If you call the debounced function before the timer expires, it clears the timeout and restarts the timer.
It helps us optimize performance and avoid recalling expensive operations too frequently.
What is Throttle?
Throttle ensures a function can only be called once every t milliseconds, no matter how many times it's triggered.
Application of Throttling:
1. 🖱️ Scroll Event Optimization
window.onscroll fires dozens of times per second, leading to performance issues if you’re triggering expensive computations like:
2. 📦 API Rate Limiting
If users or bots flood your server with too many API calls, it can overwhelm your backend. Restrict API requests to 1 call per t ms per user/IP.
In conclusion:
📞 Debounce = Wait until you stop calling, then I’ll answer.
📡 Throttle = I’ll answer once every 10 seconds, even if you keep calling.