Skip to content

Instantly share code, notes, and snippets.

@jquimera
Forked from cferdinandi/eventThrottler.js
Created January 19, 2018 14:41
Show Gist options
  • Save jquimera/492aa29a3a050739e7f9aa83f0abc467 to your computer and use it in GitHub Desktop.
Save jquimera/492aa29a3a050739e7f9aa83f0abc467 to your computer and use it in GitHub Desktop.
A technique for throttling listener events (like resize or scroll) for better performance. https://developer.mozilla.org/en-US/docs/Web/Reference/Events/resize
var eventTimeout; // Set timeout variable
/**
* The function that runs the event actions
*/
var actualEventHandler = function () {
// handle the event...
};
/**
* Throttle events to only run at 15fps
*/
var eventThrottler = function () {
// ignore resize events as long as an actualResizeHandler execution is in the queue
if ( !eventTimeout ) {
eventTimeout = setTimeout(function() {
eventTimeout = null;
actualEventHandler();
}, 66);
}
};
// Run the event listener
window.addEventListener( 'resize', eventThrottler, false );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment