最近开始学习Web开发,没想到刚刚开始就遇到了不小的问题。在网上搜到一些有用的信息,先贴在这里,好好学习一下。
以下是原文截取部分:
长轮询(Long Polling)是用于更新服务器数据的另外一种方法。这种方法的理念就是客户端建立连接,服务器阻塞连接(通过使请求线程在某些条件下处于等待状态),有数据可用时,服务器将通过阻塞的连接发送数据,随后关闭连接。客户端在接收到更新后,立即重新建立连接,服务器重复上述过程,以此实现近于实时的通信。然而,长轮询具有以下缺陷:
- 一般的浏览器默认允许每台服务器具有两个连接(这个是HTTP规范中规定的)。在这种情况下,一个连接始终是繁忙状态。因而,UI 只有一个连接(也就是说,能力减半)可用于为用户请求提供服务。这可能会导致某些操作的性能降低。
- 仍然需要打开和关闭 HTTP 连接,如果采用的是非持久连接模式(
keepAlive=false
),那么这种方法的代价可能极高。 - 这种方法近于实时,但并非真正的实时。(当然,某些外部因素总是不可控的,比如网络延时,在任何方法中都会存在这些因素。)
原文地址:http://www.ibm.com/developerworks/cn/web/wa-aj-socket/
路漫漫其修远兮,吾将上下而求索