views:

226

answers:

2

If I want a whole page to reload every N seconds, I would put something like this in the HTML: meta http-equiv="refresh" content="5"

Is there a standard practice for doing the same kind of thing for AJAX calls? I want schedule an AJAX call to go off every 10 seconds say, in order to update parts of the page, without refreshing the whole page. It would be even better if I could schedule multiple AJAX calls at different times, as some parts of the page may need to be updated more often than others.

TIA

+4  A: 

You could use setTimeout or setInterval (the latter is probably best suited to what you want to do).

setInterval(makeRequest, (10 * 1000));

...where makeRequest is a function that reloads some content via AJAX.

Steve Harrison
If you do this, I'd make sure to verify that the previous request has finished before starting another. You don't want to pile up requests if there's network lag.
jtbandes
@jtbandes: Good point. However, this logic would probably go into the "makeRequest" function.
Steve Harrison
@jtbandes: thanks for the tip.
megamic
+1  A: 
function proxy()
{
  /* implement call to your Ajax method */
}

setInterval( proxy, 1000 ); // last arg is in milliseconds
fireeyedboy