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?
Odpowiedzi:
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 .
źródło
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).
źródło
Cała magia aktualizacji danych na żywo dzieje się dzięki systemowi śledzenia zależności. Wyjaśnienie, jak to działa, można znaleźć w sekcji poświęconej śledzeniu w dokumentacji.
źródło