“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以外另外一种通信方式,并且用户群正在不断的扩大。而这里,我也是说的杂乱无章,感觉很多东西要说,却不知从何说起,欢迎大家拍砖讨论!
参考文章:
分享到:
相关推荐
The real-time web is gaining momentum and this book provides the simplest way to jump on board. A beautifully clear tutorial on Vert.x, it helps you develop a real-time web application from the ground...
The real-time web is gaining momentum and this book provides the simplest way to jump on board. A beautifully clear tutorial on Vert.x, it helps you develop a real-time web application from the ground...
《Socket.IO实时Web应用开发》这本书是Rohit Rai所著,详细介绍了如何使用Socket.IO这一强大的库来构建现代实时Web应用程序。Socket.IO是一个用于实时、双向和基于事件的通信的库,它主要基于Node.js,同时支持...
Proficy Real-Time Information Portal是一个基于Web的解决方案,能与在线的生产过程系统、数据分析系统和基于Web的可视化组件进行全面集成。 作为一款突破性应用软件,Proficy Real-Time Information Portal为企业...
《实时Web技术探析——基于"real-time-web-源码.rar"的解析》 实时Web技术,作为现代互联网应用的核心组成部分,已经深入到各种在线交互、数据同步、实时通信等场景中。本篇文章将围绕"real-time-web-源码.rar"这一...
Build real-time web communication apps with ASP.NET Core SignalR
Web Real-Time Communication (WebRTC) is a new standard that lets browsers com‐ ...time, web developers to build real-time multimedia applications with no need for pro‐ prietary plug-ins.
Real-Time Communication with WebRTC Peer-to-Peer in the Browser 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
作为一个即插即用的解决方案,在多种平台上都可以使用,包括Android、iOS、Web(TensorFlow.js)以及桌面PC。 利用这个开源的工作流,开发者可以在自己的应用程序中集成手部追踪功能,实现手势识别、交互设计等应用...
1. WebRTC(Web Real-Time Communication)技术: WebRTC是一种支持网页浏览器进行实时通信的技术,允许网页应用和服务器之间、甚至浏览器之间进行实时的音频、视频和通用数据通信。通过WebRTC,开发者能够集成实时...
Real-Time Web Application Development With ASP.NET Core, SignalR, Docker, and Azure
WebRTC - APIs and RTCWEB Protocols of the HTML5 Real-Time Web 第二版 第三版合集 WebRTC p2p nat voip sip
Real-Time Web Application Development With ASP.NET Core, SignalR, Docker, and Azure 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
SignalR是ASP.NET Core中的一个库,用于简化实现实时Web功能的过程。通过SignalR,开发者可以轻松地在服务器和客户端之间建立双向通信通道,实现数据的实时推送。 #### Docker Docker是一种容器化技术,它可以将...
根据提供的文件信息,本文将详细解析与实时网络(Real-Time Web)相关的技术要点,特别是WebRTC(Web Real-Time Communication)这一关键组件。 ### WebRTC概述 WebRTC是一种开放的、免费的技术,允许网页浏览器...
Innovations like Google live search and live Facebook and Twitter updates are pushing users’ expectations of the real-time web. With Pro ASP.NET SignalR, you can join this revolution and learn ...
实时Web应用程序是指能够在毫秒级时间范围内对用户或系统事件做出响应的应用程序,这类应用要求极高的数据处理能力和反应速度。对于这类应用,传统的客户端/服务器架构往往维护成本高昂且难以适应快速变化的网络环境...
标题《Discover Meteor: Build Real-Time JavaScript Web Apps 完整版》中蕴含的知识点主要涉及学习使用Meteor框架构建实时的JavaScript Web应用程序。Meteor是一个基于Node.js的平台,专为构建实时Web应用而设计。...