the normal method of the browser hitting the server is the only way to do it.
BUT (this is the good part)
Because it is asynchronous, there is nothing that says it has to be quick!
do a ajax call, the host does not respond unless it has new instructions for the browser. You can have it wait (not a normal behavior).
on the browser, you have to deal with LOTS of timeouts, and after the timeout, you try again.
so with a little setInterval and intelligent timeout handling, the browser takes instructions from the server!
this is a great way to do a chat program.
I use modperl on my server, and http://jquery.com javascript library. It's not that hard!!