Mastering Function Execution: A Guide to Debouncing and Throttling

Debouncing and Throttling are techniques that allow the user to skip the execution of a function because the function calls multiple times over a certain period of time.

Example of the situation – As we know that many users type too fast. If the user is searching for something on the search bar then every type of request will send a suggestion that can cause application unresponsiveness or crash.

Similarly, if the user is continuously clicking on a button too many times and under the control, onPress heavy calculation happening or requesting sending that time also the application can be unresponsive or crash.

Solution: To deal with this kind of issue we can not ask the user to use the app slowly. We have to maintain our application to deal with such kinds of problems.

Related read: Web Application Development – The Ultimate Beginners Guide For 2023

What is Debouncing?

Debouncing used to work with the delay time between event fire and execution of the function. When an event is triggered the function calls after some time of the interval. If the user types again then the time will get reset and function execution will be postponed. This means between the time delay and time period if the user types again then time will recalculate and execute a function after time is complete.

For example, we mainly use the setTimeOut function for delay function execution timing.

Here is an example of a search bar with show suggestions –

example-search bar with show suggestions

example of search bar with show suggestions complete

Also, we can use lodash library Method _.debounce

For example –

lodash library

Transforming Ideas into Seamless Experiences: Discover Our UI/UX Services

What is Throttling?

Throttling is similar to debouncing because it also keeps track of internal function execution. The only difference is that it allows the function to run only once within a specific time interval.

For example –

If a user writes a DOC which he wants to send a request to the backend to save the DOC simultaneously without pressing the “Save” button. To achieve this feature we have to use the throttling technique.

A very common case of throttling is to handle scrolling or resizing the page, this will trigger multiple function execution quickly like every 100 milliseconds.

For example –

Throttle function to limit execution rate

Throttle the click event handler

Also, we can use lodash library Method _.throttle

lodash library throttle

Throttling is a technique in which, no matter how many times user fires the event, the attached function will be executed only once in a given time interval. Throttling ensures that the function executes at regular time intervals.



In conclusion, the powerful techniques of Debouncing and Throttling provide essential solutions to one of the most common challenges in user interface design – managing the execution of functions in response to rapid and repeated user interactions.

By understanding these methods, developers can effectively enhance the user experience by preventing application unresponsiveness, crashes, and inefficiencies caused by excessive function calls.

Keep Reading

Struggling with EHR integration? Learn about next-gen solutions in our upcoming webinar on Mar 6, at 11 AM EST.

Register Now

Let's create something together!