0.3.1 • Published 8 years ago

js-debounce v0.3.1

Weekly downloads
119
License
GPL-3.0
Repository
github
Last release
8 years ago

Debounce

Circle CI NPM VersionEye Codecov Codacy

Javascript setTimeout and setInterval replacement, with advanced options and debounce ability.

Usage

debounce( id, delay, callback )

This will call the function callback after delay milliseconds.

debounce( id, true )

This will call the function assigned to id instantly and cancel the assigned timeout.

debounce( id )

This will cancel the callback assigned with id and won't call it.

The callback function will be called with one argument, that's the number of times the current timeout has been run. It will always be 0 unless you return true from your callback, then it will increase.

Return values

Inside a callback function, you can return any of these values to reassign the callback to the same or a different delay.

  • True(ish) reschedule the same callback after the same delay again.
  • number reschedule the same callback after new returned delay.
  • false(ish) don't reschedule anything.

You can also override the timeout with the same id inside the callback, and if you do so the return value will be ignored.

Examples

Scroll events

$(document).on('scroll', function() {
  debounce( `scroll-event`, 500, scrollEvent );
});

function scrollEvent() {
  // This will only be excuted if the user scrolls and then stops for 500ms.
}

Timeout functions

debounce( `ajax-timeout`, 30000, function() {
  ajax.abort();
});
ajax.done(function() {
  // Cancel the callback
  debounce( `check-loaded` );
});
0.3.1

8 years ago

0.3.0

9 years ago

0.2.0

9 years ago