Cover Image for JavaScript Debouncing
111 views

JavaScript Debouncing

JavaScript debouncing is a technique used to control the frequency of a function call, particularly in scenarios where the function is invoked multiple times within a short time period (such as user input events like scrolling, resizing, or typing). Debouncing helps optimize performance by delaying the execution of the function until a certain amount of time has passed since the last invocation.

Here’s an example implementation of debouncing in JavaScript:

JavaScript
function debounce(func, delay) {
  let timerId;

  return function(...args) {
    clearTimeout(timerId);

    timerId = setTimeout(() => {
      func.apply(this, args);
    }, delay);
  };
}

In this example, the debounce function takes two arguments: func, which is the function to be debounced, and delay, which specifies the time in milliseconds to wait before invoking the function.

The debounce function returns a new function that wraps the original function. When this wrapper function is called, it clears any previously set timeout using clearTimeout and sets a new timeout using setTimeout. The wrapped function is invoked after the specified delay, ensuring that the original function is executed only after a certain period of inactivity.

Here’s an example of how to use the debounce function:

JavaScript
function handleScroll() {
  console.log("Scrolling...");
}

// Debounce the handleScroll function with a delay of 200 milliseconds
const debouncedScroll = debounce(handleScroll, 200);

// Attach the debounced function to the scroll event
window.addEventListener("scroll", debouncedScroll);

In this example, the handleScroll function is debounced with a delay of 200 milliseconds. The debounced version, debouncedScroll, is then attached to the scroll event. The handleScroll function will be called only after a 200 millisecond period of inactivity since the last scroll event. This helps optimize the performance by reducing the number of function invocations during rapid scrolling.

YOU MAY ALSO LIKE...

The Tech Thunder

The Tech Thunder

The Tech Thunder


COMMENTS