一、传统轮询 (Traditional Polling)
设置时间,每隔一段时间发送一个新的 HTTP 请求(给服务器造成了很大的负担,要求服务器有很快的处理速度,并且不是每次都能返回新的信息,这个时间很难把控)。
典型的有 Ajax 轮询(采取 setInterval 或者 setTimeout 实现)。
二、长轮询 (Long Polling)
长轮询的基本思想是在每次客户端发出请求后,服务器检查上次返回的数据与此次请求时的数据之间是否有更新,如果有更新则返回新数据并结束此次连接,否则服务器“hold”住此次连接,直到有新数据时再返回相应信息。而这种长时间的保持连接可以通过设置一个较大的 HTTP timeout 实现。
(解决了传统轮询的带宽浪费问题,但是每次连接的保持是以消耗服务器资源为代价的,要求服务器支持很高的并发量)
三、服务器发送事件 (Server-Sent Event)
四、WebSocket
转自:
http://blog.zhangruipeng.me/2015/10/22/Web-Connectivity/
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于