Meteor快速实现几乎实时地响应用户交互的数据驱动应用程序

本文将讨论 Meteor,这是一个旨在解决此问题的激动人心的新 ">JavaScript 框架。Meteor 是一种新的 JavaScript 框架,用于自动化和简化实时运行的 Web 应用程序的开发。它使用一个名为分布式数据协议 (Distributed Data Protocol, DDP) 的协议来处理实时通信,使用 WebSockets 的新浏览器以及使用 Asynchronous JavaScript + XML (Ajax) 长轮询的旧浏览器来支持这种协议。在这两种情况下,浏览器到服务器的通信是透明的。

DDP 协议旨在处理 JavaScript Serialized Object Notation (JSON) 文档集合,使 JSON 文档容易创建、更新、删除、查询和访问。因为 DDP 是一种开源协议,所以您可将它连接到任何客户端或数据存储。它为 MongoDB 提供了开箱即使用支持。

事实上,Meteor 提供了两个 MongoDB 数据库:一个客户端缓存数据库和服务器上的一个 MongoDB 数据库。当一个用户更改一些数据时(例如通过单击 Save),在浏览器中运行的 JavaScript 代码会更新本地 MongoDB 中的相应的数据库项,然后向服务器发出一个 DDP 请求。该代码立即像操作已获得成功那样继续运行,因为它不需要等待服务器回复。与此同时,服务器在后台更新。如果服务器操作失败或返回一个意外结果,那么客户端 JavaScript 代码会依据从服务器新返回的数据立即进行调整。这种调整称为延迟补偿,向用户提供了更高的认知速度。

显然,甚至连 Meteor 的模板系统也是为简化实时通信而设计的。在大多数 Web 框架中,您可以轻松地混合使用超文本标记语言 (HTML) 和代码,或者与 HTML 等效的标记,比如 HTML 抽象标记语言 (Haml)。这使您能够轻松地将来自数据库的动态值插入发送给用户的页面中。在这之后,您应该负责准备提供一个系统来观察对数据的更改,然后更新您的标记。但是,Meteor 中的模板系统用于记录访问了模板中的哪些数据,并自动回调,以便在底层数据更改时调用此 HTML,使实时模板变得更加简单快捷。

示例:链接流行度竞赛

Meteor 的模板功能可使众多8208.html">实时应用程序更容易编写。例如,假设您希望创建一个的站点,用户可在其中输入链接(即统一资源定位符,URL),并投票肯定和否决它们,而且赢得流行度竞赛的 URL 会显示在一个列表顶部。通过使用 Meteor,您可以轻松地实时编写这样一个应用程序,以便用户可在其他用户投票时看见他们的 65 张选票。

安装 Meteor

要安装 Meteor,可以将 清单 1 中所示的代码键入到一个 Linux® 或 Mac OS® X 终端中。Meteor 不支持 Microsoft® Windows®。

清单 1. 安装 Meteor

curl https://install.meteor.com > install_meteor.shchmod u+x install_meteor.sh./install_meteor.sh

现在您可创建一个新项目。

创建一个新项目

meteor 命令可自动化包含新项目创建过程中 Meteor 需要操作的一切内容的。键入 清单 2 中所示的命令,以便创建一个名为 realtime_links 的项目。

清单 2. 创建您的 Meteor 项目

meteor realtime_linkscd realtime_links

Meteor 创建了一个目录,其中包含一个 HTML 文件、一个 JavaScript 文件和一个级联样式表 (CSS) 文件。最后一个文件是一个标准 CSS 文件,但前两个值得讨论一下。您可以从 下载 一节下载 realtime_links.html 和 realtime_links.js 文件的完整版本。

时间: 2024-11-01 16:05:47

Meteor快速实现几乎实时地响应用户交互的数据驱动应用程序的相关文章

模态窗口其实就是在当前窗口调用系统的消息循环,响应用户的操作,将相关的消息发送到对应的窗口(转)

  上周准备在公司内部转岗,面了3个部门windows客户端相关的工作,最终拿到3个Offer,主要涉及C++和Windows两大块内容,C++的题目基本都答上了,Windows一直都是我的弱项,在这里记录一下Windows相关的题目.有些答不上的问题就没列出来,还有些问题忘了,下面的答案有些大部分是我自己的理解,有些是直接从网上copy的,有问题大家可以讨论. 1:GetMessage和PeekMessage的区别? GetMessage:获取消息队列中的一个消息,存入MSG中,并从消息队列中

asp.net 实时更新在线用户,获取在线用户

问题描述 进销存系统,实时更新在线用户,获取用户登录的ip,可以注销用户 解决方案 解决方案二:用户登录的时候将用户的sessionid与用户的对应关系存入application,sessionout时删除对应关系解决方案三: 解决方案四:引用1楼starfd的回复: 用户登录的时候将用户的sessionid与用户的对应关系存入application,sessionout时删除对应关系 不敢用application统计人数啊,想被卡死吗?解决方案五:有好的例子吗解决方案六:心跳啊在线期间,每隔1

imageview-关于ImageView快速改变背景图片无法响应点击事件的问题,求大神。。。。。

问题描述 关于ImageView快速改变背景图片无法响应点击事件的问题,求大神..... 我的ImageView是ListView里面的一个控件,我现在快速改变ImageView的背景图片(一秒十次) 此时点击事件就会没有效果(改变我使用的是通知适配器发生改变),请问这是什么现象,有大神告诉我一下吗,或者有其他的解决这种方法的办法吗? 就是ListView里面的一个ImageView当我点击的时候快速改变背景图 解决方案 未在快速改变ImageView的背景图片前,点击是可以用的吗? 如果可以,

联动天下响应用户心声,com/net域名价格降至37元

一提到域名人们http://www.aliyun.com/zixun/aggregation/21263.html">第一时间想起的后缀不是.com就是.net,作为历史悠久的顶级域名,他们所包含的价值与意义的重量最不能轻视.也相对的,他们的价值各大顶级域名注册商也赋予了他们不菲的身价,这让很多关注域名的用户迫切希望com/net域名这个国际之星能够以"平民"的形式走在市场上. 国内顶级域名注册商联动天下也正是响应用户的心声,不但将com/net域名价格调为37元,而且

静态页面实时调用用户登陆与退出登陆程序(js调用php代码)

 代码如下 复制代码 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

《HTML5+JavaScript动画基础》——2.5 用户交互

2.5 用户交互 用户交互可能是你选择本书的一个重要原因.毕竟,如果没有交互或者无法对动画产生一些动态的影响,你可能就去看电影了.用户交互是基于用户事件的,这些事件通常是鼠标事件.触摸事件以及键盘事件.让我们快速地浏览各种用户事件类型以及如何处理这些事件. 2.5.1 事件与事件处理程序 为了理解事件,你必须理解一些额外的概念:监听器与事件处理程序.监听器决定一个元素是否应该响应某个事件,而事件处理程序则是当事件发生时将要调用的函数. 我们绘制到canvas元素上的形状自身并不具备监测事件的功能

实时获取股票数据的android app应用程序源码分享_Android

最近学习Android应用开发,不知道写一个什么样的程序来练练手,正好最近股票很火,就一个App来实时获取股票数据,取名为Mystock.使用开发工具Android Studio,需要从Android官网下载,下载地址:http://developer.android.com/sdk/index.html.不幸的是Android是Google公司的,任何和Google公司相关的在国内都无法直接访问,只能通过VPN访问. 下图为Android Studio打开一个工程的截图:   下面按步介绍My

浅析Windows Phone 7之用户交互设计

在今年2月15日巴塞罗那的Mobile World Congress 2010大会上,微软终于正式宣告了其下一代的智能手机平台Windows Phone 7 Series(目前已经更名为Windows Phone 7).这半年来,随着各大媒体对于Windows Phone 7的关注度的日益提高,大家对Windows Phone 7的了解也越来越多.同时,为了能够在广大开发者在Windows Phone 7正式上市前顺利的开发出Windows Phone 7上的相关应用,微软也已经在这两个月陆续的

实时获取股票数据的android app应用程序源码分享

最近学习Android应用开发,不知道写一个什么样的程序来练练手,正好最近股票很火,就一个App来实时获取股票数据,取名为Mystock.使用开发工具Android Studio,需要从Android官网下载,下载地址:http://developer.android.com/sdk/index.html.不幸的是Android是Google公司的,任何和Google公司相关的在国内都无法直接访问,只能通过VPN访问. 下图为Android Studio打开一个工程的截图: 下面按步介绍Myst