Comet 与传统的 Ajax 轮询相比性能方面是否占优?
来源:互联网 发布:python 贝叶斯分类 编辑:程序博客网 时间:2024/06/13 03:31
Comet 本质上和 C/S 中的通信并不一样,它是通过长连接来模拟推送的。也就是说,在没有数据的时候,这个连接挂起,直到有数据来了(推送),服务器端返回响应,该连接结束,客户端的 JS 重新建立下一个等待连接。
这种方式并不像 C/S 通信建立长期使用的通道,只是长期“等待”而已,避免了在数据更新频率不大的情况下轮询的开销:试想如果五分钟才一次更新,那么轮询方式在此期间几秒钟就要发生一次请求&响应,而这些请求响应都是没有价值的,因为它们并没有传输有用数据。Comet 避免的是这方面的浪费,不再有空请求,因为挂起的连接直到数据更新了才结束。
性能方面,对于数据量不大但需要实时更新的应用来说,Comet 能更有效利用连接,同时因为没有轮询的心跳频率,Comet 会比轮询更加实时——因为只消耗响应的网络传输时间。
但是 Comet 本身并不能在数据传输方面提供比轮询更高的效率,仅仅避免了轮询的空请求浪费。所以 Comet 和 web socket 之类的通讯方式差距还是有的。
大型网站的应用方面,知乎、QQ 邮箱都有用到 Comet,还有新浪微博的私信(聊天)。使用 Comet 主要需要是服务器端的支持,因为使用长连接,所以要有一定负载量一般得使用异步的网络框架,Python 的 tornado、gevent 和 JavaScript 的 node.js 都是此列。
这种方式并不像 C/S 通信建立长期使用的通道,只是长期“等待”而已,避免了在数据更新频率不大的情况下轮询的开销:试想如果五分钟才一次更新,那么轮询方式在此期间几秒钟就要发生一次请求&响应,而这些请求响应都是没有价值的,因为它们并没有传输有用数据。Comet 避免的是这方面的浪费,不再有空请求,因为挂起的连接直到数据更新了才结束。
性能方面,对于数据量不大但需要实时更新的应用来说,Comet 能更有效利用连接,同时因为没有轮询的心跳频率,Comet 会比轮询更加实时——因为只消耗响应的网络传输时间。
但是 Comet 本身并不能在数据传输方面提供比轮询更高的效率,仅仅避免了轮询的空请求浪费。所以 Comet 和 web socket 之类的通讯方式差距还是有的。
大型网站的应用方面,知乎、QQ 邮箱都有用到 Comet,还有新浪微博的私信(聊天)。使用 Comet 主要需要是服务器端的支持,因为使用长连接,所以要有一定负载量一般得使用异步的网络框架,Python 的 tornado、gevent 和 JavaScript 的 node.js 都是此列。
- Comet 与传统的 Ajax 轮询相比性能方面是否占优?
- 移动商务与传统电子商务相比的七个优势
- Ajax与Comet的介绍与区别
- websocket与comet的性能对比
- Ajax 与 Comet
- Ajax、Comet与Websocket
- Ajax、Comet与Websocket
- Ajax与Comet
- Ajax 与 Comet
- Ajax与Comet
- Ajax 与 Comet
- 与传统cdn相比高性能cdn又"高"在哪里?
- fetch与传统的ajax
- IP摄像头与传统模拟摄像头相比
- javascript AJAX与Comet详解
- 浮点数运算的性能,与整数相比
- 与MySQL传统复制相比,GTID有哪些独特的复制姿势?
- YYWebImage的基本使用: 与SDWebImage 相比在性能方面有很大的提升,YYWebImage 的图片加载的时候不是直接加载原图,而是通过图片重绘的形式将图片加载上去的,性能消耗很小
- Dynamic Router
- struts
- /proc 伪文件系统
- nfs网络文件系统挂载笔记整理1
- KMP算法
- Comet 与传统的 Ajax 轮询相比性能方面是否占优?
- CDN内容分发网络简介
- C# timer简单使用方法小结
- cocos2d-x跨android&ios平台开发入门教程part-1
- "苦逼"民工路
- Asp.Net数据控件引用AspNetPager.dll分页
- 多选框、单选框的使用
- struts文件下载
- 如何将DBGrid 中的数据导入到EXCEL中