我遇到了Meteor,虽然它看起来很令人兴奋,但我想知道它是如何工作的。我的意思是传统的 Web 应用程序是这样工作的:您在服务器上有脚本,这些脚本从数据库中获取数据并将其动态添加到网页中,并且用户提交的数据通过其他一些脚本添加到数据库中。
但是这些东西在 Meteor 中是如何工作的呢?Meteor 的不同部分如何相互关联?
我遇到了Meteor,虽然它看起来很令人兴奋,但我想知道它是如何工作的。我的意思是传统的 Web 应用程序是这样工作的:您在服务器上有脚本,这些脚本从数据库中获取数据并将其动态添加到网页中,并且用户提交的数据通过其他一些脚本添加到数据库中。
但是这些东西在 Meteor 中是如何工作的呢?Meteor 的不同部分如何相互关联?
Meteor是一个优雅地实时更新 HTML 的框架。
Meteor 的美妙之处在于您只需要创建模板和数据模型。通常的样板代码的其余部分被隐藏起来。您不需要编写所有同步代码。
Meteor 的关键部分可以使用这些部分自己构建:
它提供了在您的数据模型更新时自动更新的模板。这通常使用Backbone.js、Ember.js、Knockout.js或其他工具来完成。
与 MongoDB的客户端连接非常酷。它将 MongoDB 服务器驱动程序复制到客户端。不幸的是,上次我检查时,他们仍在努力保护这个数据库连接。
延迟补偿只是首先更新客户端模型,然后将更新发送到服务器-服务器。
免责声明:此答案描述Meteor , Meteor Server的 JavaScript 客户端库。它最初是由于问题中的歧义而添加的,并且可能用于澄清搜索类似答案但不确定差异的访问者所面临的类似歧义。
要了解Meteor JavaScript 框架,请参阅xer0x的这个答案。
正如 Meteor Server 的文档中提到的,Meteor 是Comet的一个实现。Comet 又是AJAX的对应物。
在 AJAX 的情况下,您通常会在客户端认为需要这样做时发出请求。要从服务器提取更新,您需要调用服务器,例如。每 5 秒。
在 Comet 的情况下,来自服务器的更新更快,因为连接是持久的。连接是由客户端建立的,就像在 AJAX 中一样,但是服务器直到它有一些更新或达到执行限制(服务器上的脚本可能有执行限制)才会响应。
在 Meteor 的情况下,您只需获得需要一些特定服务器端代码(如 Meteor 服务器)和客户端上的适当代码(在这种情况下它看起来像 Meteor 类)的恒定数据流。
由于依赖跟踪系统,实时数据更新的所有魔力正在发生。可以在文档的Tracker部分找到有关其工作原理的说明。