“人生苦短,不如养狗
”
一、一切为了通信
为了避免概念混淆,这里阐明一下,本文所说的端与端特指B/S(Browser/Server)架构下客户端(即浏览器)与服务端。
随着Web应用的兴起,B/S架构(即浏览器/服务器架构)应运而生。B/S架构中采取了 浏览器请求、服务器响应 的工作模式,这就造成了端与端之间数据通信的单一——即服务端无法主动传输数据给浏览器端。当遇到需要获取实时数据的场景,比如请假审批,此时常见的方式是浏览器向服务器端不断发起轮询来查询对应的数据。
浏览器发起的轮询一般有两种,分为 短轮询 和 长轮询 ,两者都基于HTTP协议实现,属于非持久连接。
短轮询
:一般采用 Ajax 实现。即浏览器端每隔固定时间向服务器端发起HTTP请求,尝试获取最新的数据。长轮询
:长轮询整体逻辑上和短轮询