Wie funktioniert das Meteor JavaScript-Framework?
Stieß ich auf Meteor und zwar scheint es spannend, ich will wissen, wie es funktioniert. Ich meine herkömmlichen web-Anwendungen arbeiten wie diese:
Sie haben scripts auf dem server, die Daten aus der Datenbank und hinzufügen, die dynamisch web-Seiten und die vom Benutzer gesendeten Daten Hinzugefügt wird, die Datenbanken über einige andere Scripte.
Aber wie diese Dinge funktionieren in Meteor? Wie sind die verschiedenen Teile der Meteor miteinander verwandt?
Kommentar zu dem Problem - Öffnen
Dies ist eine Konstruktive, sachliche Frage. Alle gültigen Antworten müsste ", unterstützt durch Fakten, Referenzen oder spezifisches know-how." Offenbar casperOne falsch verstanden hat, die Frage oder die Kriterien für die Kennzeichnung einer Frage als nicht konstruktiv.
Aber diese Frage wird wahrscheinlich werben "erweiterte Diskussion" und nicht "Antwort" beantworten.
@durron597 ich denke, Sie werden sagen, dass die Antwort auf die Frage ist sehr groß (korrigiert mich, wenn ich falsch verstanden habe). Dass ich sehen kann, aber das ist nicht das gleiche wie "nicht konstruktiv". Die definition von "nicht konstruktiv" in den vorformulierten Zusammenfassung, der unten angezeigt wird, macht deutlich, dass die "nicht konstruktiv" - tag ist für nicht-objektiven Fragen. Diese Frage ist 100% Objektiv. Meteor funktioniert, wie es funktioniert. Wenn mehrere Meinungen zu starten zeigt sich hier, dann alle, aber einer von Ihnen gehen, falsch zu sein.
@mplungjan ich finde keine dieser Antworten zufriedenstellend, da keiner von Ihnen angemessen Adressen der Meteor Prinzip der "Daten über den Draht. Meteor nicht in HTML versenden über das Netzwerk. Der server sendet die Daten an und erlaubt es dem client Rendern." das erste Prinzip der 7 Prinzipien.
InformationsquelleAutor der Frage Jatin | 2012-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meteor ist ein framework, das aus updates HTML in Echtzeit.
Die Schönheit der Meteor ist, dass Sie brauchen nur zu erstellen, die Vorlagen und die Daten-Modelle. Der rest der üblichen boilerplate-code versteckt ist. Sie brauchen nicht zu schreiben, alle sync-ing-code.
Den key-pieces der Meteor gebaut werden konnte, selbst mit diesen Stücken:
Es bietet templating, dass updates automatisch, wenn Sie Ihre Daten-Modelle tun. Dies geschieht in der Regel mit Backbone.js, Ember.js, Knockout.js, oder einem anderen tool.
Den client/server-messaging - erfolgt über websockets mit so etwas wie socks.js oder socket.io.
Den client-Seite Verbindung zu MongoDB ist wirklich cool. Es repliziert die MongoDB-server-Treiber in den client. Leider, zuletzt habe ich geprüft, Sie arbeiteten immer noch an der Sicherung dieser Datenbank-Verbindung.
Den latenzausgleich ist einfach nur die Aktualisierung der client-side-Modell ersten, dann senden Sie das update für den server-server.
Möglicherweise gibt es andere nette Stücke finden Sie auf der Meteor Website, oder auf GitHub.
InformationsquelleAutor der Antwort xer0x
Wie bereits erwähnt auf der Meteor-Server in der Dokumentation, die Meteor ist eine Implementierung von Komet. Kometen wiederum ist ein Gegenstück von AJAX.
Im Falle von AJAX, die Sie in der Regel einen Antrag stellen, wenn der client sieht eine Notwendigkeit, das zu tun. Zu ziehen-updates vom server, müssen Sie den server aufrufen, zB. alle 5 Sekunden.
Im Fall von Kometen, die Aktualisierung vom server kommt schneller, weil die Verbindung persistent ist. Die Verbindung wird aufgebaut, indem client, wie in AJAX, aber der server reagiert erst, wenn es einige update oder es erreicht die Ausführung Grenze (- Skripte auf dem server haben können, der Ausführung begrenzt).
Im Falle der Meteor bekommst du nur Konstanten Strom von Daten, die einige spezifische server-side code (wie Meteor-Server) und entsprechenden code auf dem client (in diesem Fall sieht es aus wie es ist Meteor-Klasse).
InformationsquelleAutor der Antwort Tadeck
Alle Zauber mit live-Daten aktualisieren tut sich da von der dependency-tracking-system. Eine Erklärung, wie es funktioniert, finden Sie auf der Tracker Abschnitt der Dokumentation.
InformationsquelleAutor der Antwort snez