views:

47

answers:

2

I'm creating a web application that allows users to make changes through Javascript. There is not yet any AJAX involved, so those changes to the DOM are being made purely in the user's local browser.

But how can I make those DOM changes occur in the browser of anyone else who is viewing that page at the time? I assume AJAX would be involved here. Perhaps the page could just send the entire, JS-modified source code back to the server and then the other people viewing would receive very frequent AJAX updates?

Screen sharing would obviously be an easy work-around, but I'm interested to know if there's a better way, such as described above.

Thanks!

+2  A: 

You are talking about comet, for an easy implementation i'd suggest:

and also check these:

and new html5 way of it

Hope these help.

Sinan Y.
A: 

Max,

Ajax will have to be involved. If i may, I'd like to suggest jQuery as a starting point for this (i know you didn't tag as such, but i feel it'd be appropriate, even if only to prototype with). the basic semantics would involve running the ajax request in combination with a setInterval() timer to fire off the ajax request. this could be done in jQuery along the lines of:

$(document).ready(function() {
    // run the initial request
    GetFreshInfo();
    // set the query to run every 15 seconds
    setInterval(GetFreshInfo, 1500);
});

function GetFreshInfo(){
    // do the ajax get call here (could be a .net or php page etc)
    $.get('mypageinfostuff.php', null, function(data){$('#myDivToUpdate').html(data);});
}

that's the basic premise... i.e the webpage is loaded via GetFreshInfo() initially straight away, then it's requeried every 15 seconds. you can add logoc to only refresh the div if there is new data there, rather than always updating the page. as it's ajax, the page won't freeze and the process will be almost invisible to the user (unless you want to flag the changes in any way)

Hope this helps

jim

jim
Check out HTML5 websockets
Tom Gullen
tom -will do. tho' we've got a bit of a wait at a lot of our sites as some peeps are STILL on ie6 - amazing!!
jim
tom - i noticed this one that may overcome the limitations of html5 by using flash to host js piggy-back style: http://github.com/gimite/web-socket-js
jim