2013年12月11日
摘要: 如上图:X Y Z 分别为传来的开始时间可能位于数据库中时间段的位置。X有三种可能 即传来的开始时间为与数据可中某条数据的开始位置! 这样他的结束时间就有三种可能 1.位于数据库中开始时间(start)之前 2.位于数据库中开始时间(start)与结束时间(end)之间 3.位于数据库中结束时间... 阅读全文
posted @ 2013-12-11 11:54 davidkam 阅读(8973) 评论(0) 推荐(0) 编辑
摘要: 2008 年的夏天,偶然在网上闲逛的时候发现了 Comet 技术,人云亦云间,姑且认为它是由 Dojo 的 Alex Russell 在 2006 年提出。在阅读了大量的资料后,萌发出写篇 blog 来说明什么是 Comet 的想法。哪知道这个想法到了半年后的今天才提笔,除了繁忙的工作拖延外,还有 Comet 本身带来的困惑。Comet 能带来生产力的提升是有目共睹的。现在假设有 1000 个用户在使用某软件,轮询 (polling) 和 Comet 的设定都是 1s 、 10s 、 100s 的潜伏期,那么在相同的潜伏期内, Comet 所需要的带宽更小,... 阅读全文
posted @ 2013-12-11 08:57 davidkam 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 昨天看了comet的介绍后,虽然大概知道了comet的原理,不过没实际用过还是不太清楚,于是今天又在网上翻了一下别的网友共享的comet实现http长连接的例子,在Comet Server Push 技术介绍一文中分别提到了 ”基于长轮询(long polling)“、”基于iframe“、”基于流(stream)“三种实现comet的方式,下面我将网上找到的对应的例子链接做个汇总,就当目录吧,留作以后看基于长轮询(long polling)的特点1. 服务器端会阻塞请求直到有数据传递或超时才返回。2. 客户端响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。3. 当客户端 阅读全文
posted @ 2013-12-11 02:02 davidkam 阅读(3504) 评论(1) 推荐(1) 编辑
摘要: 1. 为什么需要服务器推送?最大的优点:实时健康知识平台重庆男科医院重庆妇科医院适用场景:实时股票价格、商品价格、实时新闻、Twitter/weibo timeline、基于浏览器的聊天系统2. Web交互的发展历程?F5手动刷新 --> AJAX轮询(Polling) --> Comet实时更新 --> HTML5实时通信 随着AJAX的流行,当前大部分网站都采取轮询的方式进行更新,但是这种方式的效率是十分低下的;一方面,服务器端不是总有数据更新,所以每次请求不一定都有更新;另一方面,当发起请求的客户端数量增加,服务器端的接受的请求数量会大量上升,无形中就增加了服务器的压力 阅读全文
posted @ 2013-12-11 01:09 davidkam 阅读(247) 评论(0) 推荐(0) 编辑
摘要: Web通信之:长轮询(long-polling) “轮询”是个耐人寻味的词,第一次看到它的时候我就直接理解为“轮流查询”了。但是看到了英文才知道这个是网络通信专业的术语。轮询,其实就是一群人在排队买东西。polling这个词也生动的形容了这个的状态。就像这样 轮询如果是排队买东西,那么长轮询就是排队上厕所。买东西的话,丢下钱就可以拿东西走了,但是上厕所就不一样,有些人说不定便秘半个小时都出不来。如果只用轮询去做Web通信,那服务器就鸭梨山大了,它需要一直做的接受和断开HTTP请求的操作。就像卖热销产品的店员就没有公共厕所管理员那么轻松。 服务器就是厕所,需要上厕所的就是客户端的XHR对象... 阅读全文
posted @ 2013-12-11 01:05 davidkam 阅读(573) 评论(1) 推荐(0) 编辑
摘要: 基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。一、什么是长连接、长轮询?用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已。二、长连接、长轮询的应用场景长连接、长轮询一般应用与WebIM、ChatRoom和一些需要及时交互的网站应用中。其真实案例有:WebQQ、Hi网页版、Facebook IM等。如果你对服务器端的反向Ajax感兴趣,可以参考这篇文章 D 阅读全文
posted @ 2013-12-11 00:54 davidkam 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 在网上查了一下资料,发现轮询和长轮询还有不同的定义:轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。优点:后端程序编写比较容易。缺点:请求中有大半是无用,浪费带宽和服务器资源。实例:适于小型应用。长轮询:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。优点:在无消息的情况下不会频繁的请求。缺点:服务器hold连接会消耗资源。实例:WebQQ、Hi网页版、Facebook IM。另外,对于长连接和socket连接也有区分:长连接:在页面里嵌入一个隐蔵ifram 阅读全文
posted @ 2013-12-11 00:47 davidkam 阅读(5424) 评论(0) 推荐(1) 编辑
摘要: 长轮询方式是由前端定时发起AJAX请求,若请求到数据则把数据显示出来。comet方式是由客户端与服务器端发起一个长连接,然后客户端通过监听事件的方式,来对服务器端返回的数据作出响应和处理。实时性要求不高使用长轮询,比如微博;实时性要求较高使用comet,比如聊天室。用firebug调试一下weibo.com的网络请求可以发现,微博用的是轮询来实现消息提醒的,应该是用set timer隔个30秒或一分钟去服务器进行查询。和即时通信的web应用不同,微博提醒实时性要求不高,所以用轮询方式比较合理,没有必要用长连接。没错,不是非要使用长连接的。长连接对象保存在服务器,要占用一定的内存。降低了服务器的 阅读全文
posted @ 2013-12-11 00:23 davidkam 阅读(425) 评论(0) 推荐(0) 编辑