技术最前端,专注 Web 技术学习与总结。JavaScript, JS, ES6, TypeScript, Vue, PHP, CSS3, Html5, Node, Git, Markdown 等技术文章。
Web 应用典型的信息交互过程通常是:客户端通过浏览器发出一个请求,服务端接收请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来。
这种机制对于信息交互不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说(比如在线游戏),当客户端浏览器准备呈现获取到的信息的时候,这些信息在服务器端可能已经过时,所以,保持客户端和服务器端的信息同步是实时 Web 应用的关键要素。 在 WebSocket 规范出来之前,开发人员想实现这种应用,不得不采用一些折中的方案,其中最常用的就是轮询(Polling)和 Comet(轮询的改进版本,又可细分为长轮询机制与流技术)技术。这几种方案基本都是在用 Ajax 来模拟实时的效果,服务器与客户端编程都比较复杂,而且效率不高。