I would use AJAX. You can utilize almost any library you want: Dojo, Prototype, jQuery. Their ajax stuff is easy to understand. For example, jQuery uses something like:
$.ajax({
/* Some options like url, method, etc. */
});
/** OR **/
$.get('http://www.google.com', { key: "value", key2: "value2" });
You can set up timers to loop through; however, do note that if you MUST allow for time for the server to respond. If the server doesn't respond in enough time, you run the risk of making a bunch of calls and getting nothing back and overloading your server. So be careful. I would circumvent this by actually setting a "global" variable which is a boolean of whether or not a request is finished or not. On each call of the function by the loop, it first checks that variable, and if it's "true" then don't execute the query, otherwise, continue. Something like:
var gettingData1=false;
function getData1()
{
if(gettingData1)
return;
/** Do the ajax query here... */
}
Alternatively you could use the <meta> tag and refresh every 10 seconds; however, if the server starts to lag you could have multiple times when there is little or no data-change.