Meteor JavaScript框架如何工作?

Jat*_*tin 107 javascript web-applications node.js meteor

我遇到了Meteor,虽然看起来令人兴奋,但我想知道它是如何工作的.我的意思是传统的Web应用程序的工作方式如下:您在服务器上有脚本从数据库中获取数据并将其动态添加到Web页面,用户提交的数据通过其他一些脚本添加到数据库中.

但这些东西在Meteor中如何运作?Meteor的不同部分如何相互关联?

xer*_*r0x 81

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

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

Meteor的关键部分可以使用以下部件自行构建:

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

  • 客户机/服务器的消息是通过做的WebSockets使用类似socks.jssocket.io.

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

  • 延迟补偿仅仅是首先更新客户端模型,然后发送更新到服务器的服务器.

您可以在Meteor网站或GitHub上找到其他整洁的部分.

  • 虽然很好,但这并没有真正解决这个问题. (10认同)
  • 也许它确实回答了问题中隐藏的问题 (2认同)

Tad*_*eck 28

免责声明:此答案描述了Meteor,Meteor Server的 JavaScript客户端库.它最初是由于问题含糊不清而加入的,可能有助于澄清寻找类似答案的访问者所面临的类似歧义,但不确定其差异.

要了解流星JavaScript框架,请参阅此答案xer0x.

正如Meteor Server的文档中所提到的,Meteor是Comet的一个实现.彗星反过来是AJAX的对应物.

在AJAX的情况下,您通常在客户端需要这样做时发出请求.要从服务器提取更新,您需要调用服务器,例如.每5秒钟.

对于Comet,来自服务器的更新速度更快,因为连接是持久的.连接由客户端建立,如在AJAX中,但服务器在有一些更新或达到执行限制之前不响应(服务器上的脚本可能有执行限制).

在Meteor的情况下,您只需获得需要一些特定服务器端代码(如Meteor Server)的恒定数据流以及客户端上的相应代码(在这种情况下,它看起来像是Meteor类).

  • @ile实际上,我对meteor.com很感兴趣.在您发表评论之前,我实际上并不了解meteorserver.org. (5认同)
  • 不,Meteor.com的东西是Comet的高级形式.具体来说,它使用长轮询,你可以在chrome dev工具中观看它. (2认同)
  • meteor.js框架不是meteor http服务器.尽管制作框架的人的命名选择很差.有关更多信息,请访问http://www.meteor.com. (2认同)

sne*_*nez 25

由于依赖性跟踪系统,实时数据更新的所有魔力都在发生.有关其工作原理的说明,请参阅文档的" 跟踪器"部分.