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