在一般的Web应用中,浏览器和服务器之间使用的是请求/响应的交互模式。浏览器发出请求,服务器根据收到的请求来生成相应的响应。浏览器再对收到的响应进行处理,展现给用户。响应的格式可能是 HTML、XML 或 JSON 等。为了防止页面整个刷新,引入了Ajax来实现页面的局部刷新。不过对于需要及时获取服务器数据的应用场景来说,使用Ajax轮询就不行了,服务器并不能在有新数据时主动推送给浏览器,只能等待浏览器的下一次请求到来后响应。
对于数据及时性要求比较高的应用来说,可以考虑的实现方式是:基于HTML5的WebSocket、基于HTML5的服务器推送事件(EventSource)、comet技术。
关于服务器数据推送的相关技术可以参考:HTML5 服务器推送事件(Server-sent Events)实战开发、html5利用websocket完成的推送功能(tomcat)、Web推送技术之comet4j使用