HTTP, by definition, was not designed to "PUSH"... rather, it is designed, from the ground-up to PULL or POLL changes.
One of the major reasons for this is the ability to massively scale via caching on multiple levels (content storage level, web server level, proxy server level, client level, etc.)
To create a system where you PUSH changes, you'll have to resort to TCP/IP.
But, you do have a couple options for this:
- Flash (Cross-Browser, Cross-Platform, Widely Supported, Requires Plugin)
- Silverlight (Cross-Browser, Mac/PC, Less Supported than Flash, Requires Plugin)
- ActiveX (IE, PC, Requires special permissions most times)
Can all be used to create a connection with the service and wait for updates to be pushed.
Emerging Options: