zoukankan      html  css  js  c++  java
  • 长轮询和Comet

    长轮询方式是由前端定时发起AJAX请求,若请求到数据则把数据显示出来。
    comet方式是由客户端与服务器端发起一个长连接,然后客户端通过监听事件的方式,来对服务器端返回的数据作出响应和处理。
    实时性要求不高使用长轮询,比如微博;实时性要求较高使用comet,比如聊天室。


    用firebug调试一下weibo.com的网络请求可以发现,微博用的是轮询来实现消息提醒的,应该是用set timer隔个30秒或一分钟去服务器进行查询。和即时通信的web应用不同,微博提醒实时性要求不高,所以用轮询方式比较合理,没有必要用长连接。

    没错,不是非要使用长连接的。长连接对象保存在服务器,要占用一定的内存。降低了服务器的并发。
    除非实时性要求非常高的应用。例如WEB IM,否则不需要长连接。


    如果你的需求是要求服务器推送,而且不用考虑浏览器兼容性,并且客户浏览器支持HTML5中的SSE,Server-sent-event,也就是“服务器发送事件”的话,也可以考虑采用他,制作起来比Comet要简单很多,效果也要好很多
    MDN上有一篇介绍SSE的文章  https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events


    Comet软件  http://www.oschina.net/search?scope=project&q=Comet

    《实战 Comet 应用程序开发》  http://www.ibm.com/developerworks/cn/web/wa-lo-w2fpak-comet/

    《Comet:基于 HTTP 长连接的“服务器推”技术》  http://www.ibm.com/developerworks/cn/web/wa-lo-comet/

  • 相关阅读:
    Django之查询总结
    cookie与session
    Django之跨表查询及添加记录
    Django框架之单表操作
    Django框架之ORM(数据库)操作
    Django框架之模板基础,静态文件配置
    Django框架之模板语法(重要!)
    Django基础篇
    Django-MTV
    [BZOJ 1034] [ZJOI2008] 泡泡堂BNB 【贪心】
  • 原文地址:https://www.cnblogs.com/tonykan/p/3468487.html
Copyright © 2011-2022 走看看