js 第7章 将网站后台的数据变化实时更新到前端 js 第7章 将网站后台的数据变化实时更新到前端

2022-07-18

(一)、三种方式

①、ajax短连接

客户端每隔一秒钟发一次请求,服务器收到请求后会立刻返回结果,不管有没有新数据。 

②、ajax长连接

客户端发送一次请求,服务器端收到请求后查询有没有新数据,如果没有新数据就阻塞这个请求,直到有新数据或者超时为止。客户端每次收到请求返回结果后立刻再发一次请求。comet貌似就是这个原理。 (用comet,其实也是ajax 了。 只是前端发送一个请求后,服务端保持这个请求。有数据就事实返回。没数据就一直保持这个连接。你会说如果连接断了、超时呢,断了就再发起。)

③、WebSocket

这就不是一个 HTTP 协议了,而是一个 tcp 协议,而且 Socket 这个玩意顾名思义就是一个流了,可以双向操作。缺点是有些浏览器不支持。

(二)、对比延迟

假设网络延迟是 m 毫秒,那么 ajax 短连接的延迟在 m 到 1000 毫秒之间,另外两种基本只有 m 毫秒的延迟。 对比资源占用: 应该是1>2>3。但是 1 和 2 的比较要看情况,如果两次请求间隔时间很长的话应该是2>1>3。

nodejs 的 http://socket.io 支持上述所说的三种方式,另外还支持 Flash Socket、隐藏IFrame、JSONP Polling等方式。http://Socket.io 提供前端和服务器端的配套机制,并兼容各种浏览器,它的前端 js 模块会判断浏览器的能力,自适应选择最合适的Comet 方式。

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 556