Blog>
Snippets

Debouncing Input for Performance

Illustrate debouncing technique on form inputs to improve performance, showcasing how to delay validation checks and reduce the number of re-renders in a dynamic form environment.
const debounce = (func, wait) => {
  let timeout;
  return function(...args) {
    const context = this;
    clearTimeout(timeout);
    timeout = setTimeout(() => func.apply(context, args), wait);
  };
};
Creates a debounced function that delays invoking the provided function until at least 'wait' milliseconds have elapsed since the last time the debounced function was invoked.
const handleInputChange = (value) => {
  console.log('Validating and processing:', value);
  // Here you would call your validation or processing function
};
const debouncedInputChange = debounce(handleInputChange, 500);
Wraps the input change handler with the debounce function to ensure it is not called more often than every 500 milliseconds, reducing excessive function calls.
document.getElementById('myInput').addEventListener('input', (event) => {
  debouncedInputChange(event.target.value);
});
Adds an event listener to an input field that calls the debounced version of the input change handler, ensuring the actual input processing is debounced.