轮询polling:简单来讲就是客户端根据必定的周期不断的向服务端发出请求,来保证客户端和服务端的同步。可是这样有一个问题,就是每到周期时间客户端就会向服务端发出请求,可能服务端尚未更新,返回的数据是空的,也可能返回的是服务端更新的数据,这样就会带来不少无效的数据传输,低效。浏览器
推送:long polling,也叫长链接。简单来讲推送就是客户端这边向服务端发出一次请求以后挂起,而后到服务端有更新的时候服务端把数据传输给客户端,客户端接收处理以后才会开始下一次请求。客户端向服务端发送请求这个过程当中,服务端不更新的话,只须要保持和客户端的基本链接,直到服务端有数据更新传到客户端。服务器
推送分为长轮询和流这两种:
长轮询:就是客户端向服务端发送一次请求后挂起,直到服务端返回更新的数据或者服务端一直没有更新,请求时间超过必定周期请求超时,才开始下一次请求。这样是为了不轮询的时候的没必要要的数据传输,可是当服务端数据更新比较频繁的话,长轮询较之轮询没有什么改进。
流:就是客户端这边开一个隐藏的小窗口向服务端发出请求,服务端收到请求后作出回应,而且不断更新链接状态,来保持客户端和服务端的链接。而后服务端有更新的话就能不断的传输给客户端。可是须要针对不一样的浏览器设计不一样的方案,并发量大的时候也是对服务器资源的考验。并发