Skip to content

Instantly share code, notes, and snippets.

@springuper
Forked from simonw/ratelimit.js
Created September 6, 2011 09:11
Show Gist options
  • Save springuper/1197066 to your computer and use it in GitHub Desktop.
Save springuper/1197066 to your computer and use it in GitHub Desktop.
/* Use this to cause a function to fire no more than once every 'ms' milliseconds.
For example, an expensive mousemove handler:
$('body').mouseover(ratelimit(function(ev) {
// ...
}, 250));
*/
function ratelimit(fn, ms) {
var last = (new Date()).getTime();
return (function() {
var now = (new Date()).getTime();
if (now - last > ms) {
last = now;
fn.apply(null, arguments);
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment