RobertFischer / JQuery-PeriodicalUpdater

A port of Prototype's PeriodicalUpdater to JQuery

This URL has Read+Write access

RobertFischer (author)
Thu Nov 05 05:25:35 -0800 2009
commit  2796afe70d0da6e0f2ed7d711ce86e1589adbfbf
tree    a0cfd50c113e9bf1e74a168051c21d86fe3c0e3b
parent  faef87a6ba237fc79a52115b901062ae33030b4c
name age message
file README Loading commit data...
file jquery.periodicalupdater.js
README
A port of Prototype's Ajax.PeriodicalUpdater function to jQuery.

Basically, this function polls some remote service at fairly regular internvals, 
and (optionally) processes the result via a callback.  The period of calls will
decay as long as the same response keeps coming back from the server (either in
the form of repeated data or in the form of a 304 Not Modified status), which 
reduces the load on the server naturally.   The first Ajax call happens as a page 
'onReady' handler $(function), so it is safe to put the PeriodicalUpdater call 
anywhere on the page.

Usage:
$.PeriodicalUpdater('/path/to/service', {
  method: 'get',          // method; get or post
  data: '',               // array of values to be passed to the page - e.g. {name: "John", greeting: "hello"}
  minTimeout: 1000,       // starting value for the timeout in milliseconds
  maxTimeout: 8000,       // maximum length of time between requests
  multiplier: 2,          // if set to 2, timerInterval will double each time the response hasn't changed (up to 
  maxTimeout)
  type: 'text'            // response type - text, xml, json, etc.  See $.ajax config options
}, function(data) {
  // Handle the new data (only called when there was a change)
});

The "data" value can be one of three things:
  * A scalar, in which case it will be used constantly.
  * A map/object, in which case it will be turned into key/value pairs by jQuery
  * An anonymous function, in which case it will be executed before each AJAX call

Any other $.ajax configuration option can be passed to the setting map.  The 
only exception is the flag that treats modifications as errors. That’s always 
going to be 'true'.

More info, including advantages over 360innovate version:
* http://enfranchisedmind.com/blog/posts/jquery-periodicalupdater/

See the source file for license terms.