Meteor JavaScript框架如何工作?

我遇到了meteor ,虽然看起来令人兴奋,但我想知道它是如何工作的。 我的意思是传统的Web应用程序是这样工作的:服务器上的脚本从数据库获取数据并将其dynamic添加到Web页面,用户提交的数据通过其他脚本添加到数据库中。

但是这些东西在meteor中是如何工作的呢? meteor的不同部分如何相互关联?

Meteor是一个实时优雅地更新HTML的框架。

Meteor的美妙之处在于您只需要创build模板和数据模型。 其余的通常的样板代码被隐藏起来。 你不需要写所有的同步代码。

meteor的关键部分可以使用这些部分自己build立:

  • 它提供了在您的数据模型时自动更新的模板 。 这通常使用Backbone.js , Ember.js , Knockout.js或其他工具完成。

  • 客户端/服务器消息传递是通过使用类似socks.js或socket.io的 websockets完成的。

  • 与MongoDB客户端连接非常酷。 它将MongoDB服务器驱动程序复制到客户端。 不幸的是,最后我检查了,他们仍在努力保护这个数据库连接。

  • 延迟补偿只是简单地更新客户端模型,然后将更新发送到服务器服务器。

在Meteor站点或GitHub上可能还有其他的整洁的部分。

免责声明 :这个答案描述了Meteor服务器的 Meteor ,JavaScript客户端库。 它最初由于含糊不清的问题而被添加,并且可能有助于澄清寻求类似答案的访问者所面临的类似歧义,但不确定这种区别。

要阅读关于Meteor JavaScript框架 ,请参阅xer0x的 这个答案 。

正如Meteor服务器文档中所提到的,Meteor是Comet的一个实现。 彗星又是AJAX的对手。

在AJAX的情况下,你通常会在客户看到需要的时候提出请求。 要从服务器获取更新,您将需要调用服务器,例如。 每5秒钟一次

在Comet的情况下,来自服务器的更新会更快,因为连接是持久的。 连接是由客户端build立的,就像在AJAX中一样,但是服务器在它有一些更新或达到执行限制(服务器上的脚本可能有执行限制)之前不作出响应。

在Meteor的情况下,你只需要得到持续的数据stream,需要一些特定的服务器端代码(如meteor服务器)和适当的代码在客户端(在这种情况下,它看起来像meteor类)。

所有与实时数据更新的魔术正在发生,因为依赖关系跟踪系统。 有关它如何工作的解释可以在文档的Tracker部分find。