Jak działa framework Meteor JavaScript? [Zamknięte]

108

Natknąłem się na Meteor i chociaż wydaje się ekscytujące, chcę wiedzieć, jak to działa. Mam na myśli to, że konwencjonalne aplikacje internetowe działają w ten sposób: masz skrypty na serwerze, które pobierają dane z bazy danych i dodają je dynamicznie do stron internetowych, a dane przesłane przez użytkowników są dodawane do baz danych za pośrednictwem innych skrawków.

Ale jak te rzeczy działają w Meteorze? W jaki sposób różne części Meteoru są ze sobą powiązane?

Jatin
źródło
8
To konstruktywne, rzeczowe pytanie. Wszelkie poprawne odpowiedzi MUSZĄ być „poparte faktami, referencjami lub specjalistyczną wiedzą”. Najwyraźniej casperOne źle zrozumiał pytanie lub kryteria uznania pytania za niekonstruktywne.
Charlie Flowers
3
Ale to pytanie prawdopodobnie będzie wymagało „rozszerzonej dyskusji” i nie ma odpowiedzi „odpowiedź”.
durron597
9
@ durron597 Myślę, że mówisz, że odpowiedź na pytanie jest bardzo obszerna (popraw mnie, jeśli źle zrozumiałem). Widzę to, ale to nie to samo, co „brak konstruktywności”. Definicja „nie konstruktywna” w schemacie podsumowania, które pojawia się poniżej, wyjaśnia, że ​​tag „nie konstruktywny” dotyczy pytań nieobiektywnych. To pytanie jest w 100% obiektywne. Meteor działa tak, jak działa. Jeśli zacznie się tu pojawiać wiele opinii, wszystkie z wyjątkiem jednej będą błędne.
Charlie Flowers
@mplungjan Żadna z tych odpowiedzi nie jest satysfakcjonująca, ponieważ żadna z nich nie odnosi się odpowiednio do zasady Meteor „Dane w sieci. Meteor nie wysyła HTML przez sieć. Serwer wysyła dane i pozwala klientowi je renderować”. pierwsza zasada z 7 zasad.
Alexander Mills,

Odpowiedzi:

81

Meteor to framework, który elegancko aktualizuje HTML w czasie rzeczywistym.

Piękno Meteor polega na tym, że wystarczy stworzyć szablony i modele danych. Reszta zwykłego standardowego kodu jest ukryta. Nie musisz pisać całego kodu synchronizacji.

Kluczowe elementy Meteora można zbudować samodzielnie, używając następujących elementów:

  • Zapewnia szablony, które są aktualizowane automatycznie, gdy robią to modele danych. Zwykle odbywa się to za pomocą Backbone.js , Ember.js , Knockout.js lub innego narzędzia.

  • Komunikacja klient / serwer odbywa się za pośrednictwem gniazd internetowych przy użyciu czegoś takiego jak socks.js lub socket.io .

  • Połączenie po stronie klienta z MongoDB jest naprawdę fajne. Replikuje sterownik serwera MongoDB do klienta. Niestety, ostatnio sprawdzałem, nadal pracowali nad zabezpieczeniem tego połączenia z bazą danych.

  • Kompensacja latencji jest po prostu aktualizację modelu po stronie klienta, następnie wysłanie do serwera aktualizacji serwera.

Mogą istnieć inne fajne elementy, które można znaleźć na stronie Meteor lub na GitHub .

xer0x
źródło
10
Chociaż fajnie, to tak naprawdę nie odpowiada na pytanie.
Prisoner ZERO
2
być może odpowie na pytanie ukryte w pytaniu
Muhammad Umer
1
Ta odpowiedź jasno stwierdza, że ​​meteor realizuje całą komunikację klient / serwer przy użyciu gniazd internetowych. Myślę, że to też odpowiedziało na pytanie.
Osama Ahmed
czy meteor js i node js są nadal powiązane w wersji 0.9?
yozawiratama
28

Zastrzeżenie : Ta odpowiedź opisuje Meteor , bibliotekę klienta JavaScript dla serwera Meteor . Pierwotnie została dodana ze względu na niejasność w pytaniu i może służyć wyjaśnieniu podobnych niejasności, z którymi borykają się odwiedzający poszukujący podobnych odpowiedzi, ale niepewni co do różnicy.

Aby przeczytać o frameworku Meteor JavaScript , zobacz odpowiedź od xer0x .

Jak wspomniano w dokumentacji serwera Meteor, Meteor jest implementacją komety . Kometa z kolei jest odpowiednikiem AJAX .

W przypadku AJAX zazwyczaj wysyłasz żądanie, gdy klient widzi taką potrzebę. Aby pobrać aktualizacje z serwera, będziesz musiał zadzwonić do serwera np. co 5 sekund.

W przypadku Cometa aktualizacja z serwera następuje szybciej, ponieważ połączenie jest trwałe. Połączenie jest nawiązywane przez klienta, tak jak w AJAX, ale serwer nie odpowiada, dopóki nie otrzyma aktualizacji lub nie osiągnie limitu wykonania (skrypty na serwerze mogą mieć limity wykonania).

W przypadku Meteor otrzymujesz po prostu stały strumień danych, który wymaga określonego kodu po stronie serwera (np. Meteor Server) i odpowiedniego kodu na kliencie (w tym przypadku wygląda to tak, jakby to była klasa Meteor).

Tadeck
źródło
1
Jest Meteor i jest Serwer Meteor. Mam wrażenie, że pierwotne pytanie dotyczyło tego pierwszego, a ta odpowiedź dotyczyła drugiego? meteor.com i meteorserver.org
ile
2
Nie, materiał Meteor.com to zaawansowana forma komety. W szczególności używa długiego odpytywania, możesz go obejrzeć w narzędziach programistycznych chrome.
wmil
1
@ile: Tak, istnieje framework JavaScript o nazwie Meteor ( github.com/meteor/meteor ) oraz Meteor.js , część kliencka dla Meteor Server ( meteorserver.org/client-docs ). Uważam, że to pytanie jest zbyt niejednoznaczne, aby stwierdzić, który z tych PO miał naprawdę na myśli.
Tadeck
5
@ile Właściwie to byłem zainteresowany meteor.com. Właściwie nie wiedziałem o meteorserver.org przed twoim komentarzem.
Jatin
2
Framework meteor.js NIE jest serwerem http meteor. Pomimo kiepskiego wyboru nazw osób, które stworzyły ramy. Więcej informacji na meteor.com .
xer0x