Wie funktioniert das Meteor JavaScript Framework? [geschlossen]

108

Ich bin auf Meteor gestoßen und obwohl es aufregend erscheint, möchte ich wissen, wie es funktioniert. Ich meine, herkömmliche Webanwendungen funktionieren folgendermaßen: Sie haben Skripte auf dem Server, die Daten aus der Datenbank entnehmen und diese dynamisch zu Webseiten hinzufügen, und die vom Benutzer übermittelten Daten werden über einige andere Skripte zu Datenbanken hinzugefügt.

Aber wie funktionieren diese Dinge in Meteor? Wie hängen verschiedene Teile von Meteor zusammen?

Jatin
quelle
8
Dies ist eine konstruktive, sachliche Frage. Alle gültigen Antworten MÜSSEN "durch Fakten, Referenzen oder spezifisches Fachwissen gestützt werden". Anscheinend hat casperOne die Frage oder die Kriterien für die Bezeichnung einer Frage als nicht konstruktiv missverstanden.
Charlie Flowers
3
Aber diese Frage wird wahrscheinlich eine "erweiterte Diskussion" hervorrufen und hat keine "Antwort" -Antwort.
Durron597
9
@ durron597 Ich denke du sagst, dass die Antwort auf die Frage sehr groß ist (korrigiere mich, wenn ich falsch verstanden habe). Ich kann das sehen, aber das ist nicht dasselbe wie "nicht konstruktiv". Die Definition von "nicht konstruktiv" in der unten aufgeführten Zusammenfassung des Kesselschilds macht deutlich, dass das Tag "nicht konstruktiv" für nicht objektive Fragen bestimmt ist. Diese Frage ist zu 100% objektiv. Meteor funktioniert so wie es funktioniert. Wenn hier mehrere Meinungen auftauchen, werden alle bis auf eine falsch sein.
Charlie Flowers
@mplungjan Ich finde keine dieser Antworten zufriedenstellend, da keine das Meteor-Prinzip "Daten auf dem Draht. Meteor sendet kein HTML über das Netzwerk. Der Server sendet Daten und lässt den Client sie rendern." das erste Prinzip der 7 Prinzipien.
Alexander Mills

Antworten:

81

Meteor ist ein Framework, das HTML elegant in Echtzeit aktualisiert.

Das Schöne an Meteor ist, dass Sie nur die Vorlagen und Datenmodelle erstellen müssen. Der Rest des üblichen Boilerplate-Codes ist versteckt. Sie müssen nicht den gesamten Synchronisierungscode schreiben.

Die Schlüsselstücke von Meteor können mithilfe dieser Teile selbst gebaut werden:

  • Es bietet Templating , dass Updates automatisch , wenn Ihre Datenmodelle tun. Dies erfolgt normalerweise mit Backbone.js , Ember.js , Knockout.js oder einem anderen Tool.

  • Das Client / Server-Messaging erfolgt über Websockets mit socks.js oder socket.io .

  • Die clientseitige Verbindung zu MongoDB ist wirklich cool. Es repliziert den MongoDB-Server-Treiber in den Client. Als ich das letzte Mal nachgesehen habe, haben sie leider immer noch daran gearbeitet, diese Datenbankverbindung zu sichern.

  • Bei der Latenzkompensation wird einfach zuerst das clientseitige Modell aktualisiert und dann das Update an den Server-Server gesendet.

Möglicherweise gibt es andere nette Teile, die Sie auf der Meteor- Website oder auf GitHub finden können .

xer0x
quelle
10
Das ist zwar nett, geht aber nicht wirklich auf die Frage ein.
Gefangener
2
Vielleicht beantwortet es die in der Frage versteckte Frage
Muhammad Umer
1
Diese Antwort besagt eindeutig, dass Meteor die gesamte Client / Server-Kommunikation über Websockets ausführt. Ich denke, das hat auch die Frage beantwortet.
Usama Ahmed
sind meteor js und node js in v0.9 noch verwandt?
Yozawiratama
28

Haftungsausschluss : Diese Antwort beschreibt Meteor , die JavaScript-Clientbibliothek für Meteor Server . Es wurde ursprünglich aufgrund von Unklarheiten in der Frage hinzugefügt und kann dazu dienen, ähnliche Unklarheiten zu klären, mit denen Besucher konfrontiert sind, die nach ähnlichen Antworten suchen, sich jedoch über den Unterschied nicht sicher sind.

Um mehr über Meteor JavaScript - Framework finden Sie diese Antwort von xer0x .

Wie in der Dokumentation des Meteor-Servers erwähnt, ist Meteor eine Implementierung von Comet . Der Komet wiederum ist ein Gegenstück zu AJAX .

Im Fall von AJAX stellen Sie normalerweise eine Anfrage, wenn der Client dies für erforderlich hält. Um Updates vom Server abzurufen, müssen Sie den Server aufrufen, z. alle 5 Sekunden.

Im Falle von Comet erfolgt die Aktualisierung vom Server schneller, da die Verbindung dauerhaft besteht. Die Verbindung wird vom Client wie in AJAX hergestellt, aber der Server antwortet erst, wenn er aktualisiert wurde oder das Ausführungslimit erreicht (Skripte auf dem Server können Ausführungslimits haben).

Im Fall von Meteor erhalten Sie nur einen konstanten Datenstrom, der einen bestimmten serverseitigen Code (wie Meteor Server) und entsprechenden Code auf dem Client benötigt (in diesem Fall sieht es so aus, als wäre es eine Meteor-Klasse).

Tadeck
quelle
1
Es gibt Meteor und es gibt Meteor Server. Ich habe das Gefühl, die ursprüngliche Frage betraf die erstere und diese Antwort betraf die letztere? meteor.com und meteorserver.org
ile
2
Nein, das Meteor.com-Zeug ist eine fortgeschrittene Form von Comet. Insbesondere wird eine lange Abfrage verwendet, die Sie in den Chrome Dev Tools ansehen können.
wmil
1
@ile: Ja, es gibt ein JavaScript-Framework namens Meteor ( github.com/meteor/meteor ) und Meteor.js , einen Client-Teil für Meteor Server ( meteorserver.org/client-docs ). Ich glaube, dies ist die Frage, die zu zweideutig ist, um zu sagen, welche dieser OP wirklich im Sinn hatte.
Tadeck
5
@ile Eigentlich interessierte mich meteor.com. Ich wusste vor Ihrem Kommentar eigentlich nichts über meteorserver.org.
Jatin
2
Das meteor.js-Framework ist NICHT der meteor http-Server. Trotz der schlechten Namenswahl der Leute, die das Framework erstellt haben. Weitere Informationen finden Sie unter meteor.com .
xer0x
25

Die ganze Magie bei der Aktualisierung der Live-Daten geschieht aufgrund des Abhängigkeitsverfolgungssystems. Eine Erklärung zur Funktionsweise finden Sie im Abschnitt Tracker der Dokumentation.

snez
quelle
Meteor.deps wurde in Meteor.tracker umbenannt. Quelle hier
Benjamin Crouzier
Ich denke, dies wurde auf docs.meteor.com/#/full/tracker
Nimir