Skip to content

Instantly share code, notes, and snippets.

@defunkt
Created July 30, 2009 01:31
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save defunkt/158493 to your computer and use it in GitHub Desktop.
Save defunkt/158493 to your computer and use it in GitHub Desktop.
/*
* a smart poller for jquery.
* (by github)
*
* simple example:
*
* $.smartPoller(function(retry) {
* $.getJSON(url, function(data) {
* if (data) {
* doSomething(data)
* } else {
* retry()
* }
* })
* })
*
* The $.smartPoller function accepts a starting
* interval in ms but defaults to 1000:
*
* $.smartPoller(2000, function(retry) {
*
*/
;(function($) {
$.smartPoller = function(wait, poller) {
if ($.isFunction(wait)) {
poller = wait
wait = 1000
}
(function startPoller() {
setTimeout(function() {
poller.call(this, startPoller)
}, wait)
wait = wait * 1.5
})()
}
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment