我说下我的理解。可能也不是很正确。
长链接的链接一般是不中断的。使用http协议的Transfer-Encoding:chunked方式输出。一般实现是使用一个iframe发起请求(XMLHttpResquest貌似没发使用chunked)。然后通过脚本<script>parent.xxxxxxxx</script> 来处理,还是直接用iframe作为显示就随便。
长轮训一般使用XMLHttpResquest, 处理是发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求。然后等到服务器响应(包括超时),之后再次发起一个请求...
特点是长链接的链接只有一个。长轮训的链接有多个。对于实时性来说。长链接更好。
轮询,就是 setInterval(sendRequest, 500)。 定时请求一下就好了。
以上都是基于http协议而言的。websocket不是http协议。是一个同样是tcp的协议。websocket和http起的服务时不一样的。
@
airyland 一般来说。长轮训,长连接是特指上面的两种实现方式。如果从原理来说。即保持一个链接不中断。那么websocket也是这样的。
@
typcn 这个方式很早就有了。互联网刚开始都是在线聊天室的时候都是这样处理的。
@
jc4myself 异步不一定只是XMLHttpResquest. Ajax不单是XMLHttpResquest
字写太多了。估计有错别字。求谅解。