`
txf2004
  • 浏览: 7033144 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

什么是Real-Time Web

阅读更多

“Real-Time Web”应该算一个新的流行词,我不知道应该如何翻译,“实时网络”,虽然已有这样的称呼,好像不太贴切,并且和已有的实时网络概念有些混淆。所以暂时还是保持它原来的样子吧。

一、Real-Time web的定义

在维基百科(Real-time web)上是这样定义的:

The real-time web is a set of technologies and practices which enable users to receive information as soon as it is published by its authors, rather than requiring that they or their software check a source periodically for updates.

这里把Real-Time web定义为一个技术和实践的集合;它与传统web的不同点在于可以让用户更及时地获取“作者”的更新。

在此之前,比较类似的技术应该是RSS。RSS Reader会定时从用户订阅的地址上抓取内容,并不是太及时。

二、Real-Time web的代表

Real-Time web的典型代表主要有Twitter、Facebook和Google。

当在Twitter进行搜索时,我们可以看到结果会持续不断的更新。有人做过测试,从发布到结果出现几乎是同时的。而Facebook的friend feeds更新也提供了同样的用户体验。

提到互联网的先进技术,就不能不说Google。Google虽然没有赶上Twitter和Facebook的早班车,但是在2009年12月份宣布将实时搜索(Real-time search)引入到Google搜索中。

在我看来对于同一网站的实现Real-Time web的体验并不困难(也许这句话会招来口水),毕竟数据都在自己的控制中。但是对于Google来讲如果能够从这么庞杂的网络中实时抓取信息,并且作为搜索结果准确地返回给用户,的确应该是一个不小的挑战。

三、实现Real-Time web的技术

作为一个程序员,当看到一个新东西时,最先关注的可能还是如何去做,也就是背后的技术。

1、传统的Ajax Pull

Ajax为页面的局部刷新提供了可能,因此最容易想到的就是Ajax Pull技术了。大概的实现是每隔一段时间使用Ajax进行一次请求,页面上的JavaScript根据返回的结果进行相应的处理。

2、Comet

Comet的实现方法主要有隐藏Iframe技术和Long Polling。隐藏IFrame技术是指利用一个一直打开的不可见的IFrame维持一个和服务器间的持续链接,从而获得较快更新页面的体验。Long Polling技术是一种把页面定时请求和服务器端Push相结合的技术。页面上的Ajax启动一个请求,服务器收到该请求后,并不会立即响应,而是等待一段时间。在这段时间内容,如果服务器有内容更新就会向客户端返回更新的内容;如果没有更新,就会返回超时响应。

3、 服务器端的Push技术

这应该是一种最理想的技术。页面一次请求后,只需等待服务器不断的返回更新的内容。HTTP1.1已经支持客户端和服务器之间的长连接,而HTML5.0的Web Socket也已经在考虑实现。

4、PubSub

这是一种广播订阅机制。相对于频繁的客户端请求,作者不断的向订阅者发布更新的内容会有更好的用户体验。前不久Google发布一个PubSubHubHub的项目,支持Real-Time Web的广播订阅机制。 如今已经有MySpace、Facebook、Google Reader等在使用PubSubHubHub。

Real-Time Web正慢慢地变为除IM、Email以外另外一种通信方式,并且用户群正在不断的扩大。而这里,我也是说的杂乱无章,感觉很多东西要说,却不知从何说起,欢迎大家拍砖讨论!

参考文章:

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics