Come funziona il framework JavaScript Meteor? [chiuso]


108

Mi sono imbattuto in Meteor e anche se sembra eccitante, voglio sapere come funziona. Voglio dire che le applicazioni web convenzionali funzionano in questo modo: hai script sul server che prendono i dati dal database e li aggiungono dinamicamente alle pagine web ei dati inviati dagli utenti vengono aggiunti ai database attraverso altri script.

Ma come funzionano queste cose in Meteor? In che modo le diverse parti di Meteor sono correlate tra loro?



8
Questa è una domanda costruttiva e fattuale. Qualsiasi risposta valida DOVREBBE essere "supportata da fatti, riferimenti o competenze specifiche". Apparentemente casperOne ha frainteso la domanda oi criteri per designare una domanda come non costruttiva.
Charlie Flowers

3
Ma questa domanda probabilmente solleciterà una "discussione estesa" e non ha una risposta "risposta".
durron597

9
@ durron597 Penso che tu stia dicendo che la risposta alla domanda è molto ampia (correggimi se ho frainteso). Lo vedo, ma non è la stessa cosa che essere "non costruttivi". La definizione di "non costruttivo" nel riepilogo standard che appare di seguito rende chiaro che il tag "non costruttivo" è per domande non oggettive. Questa domanda è oggettiva al 100%. Meteor funziona come funziona. Se più opinioni iniziano a comparire qui, allora tutte tranne una saranno sbagliate.
Charlie Flowers

@mplungjan Non trovo nessuna di queste risposte soddisfacente perché nessuna di esse affronta adeguatamente il principio di Meteor di "Dati in rete. Meteor non invia HTML sulla rete. Il server invia i dati e lascia che il client li visualizzi". il primo principio dei 7 principi.
Alexander Mills

Risposte:


81

Meteor è un framework che aggiorna elegantemente l'HTML in tempo reale.

La bellezza di Meteor è che devi solo creare i modelli ei modelli di dati. Il resto del solito codice boilerplate è nascosto. Non è necessario scrivere tutto il codice di sincronizzazione.

I pezzi chiave di Meteor potrebbero essere costruiti tu stesso usando questi pezzi:

  • Fornisce templating che si aggiorna automaticamente quando i modelli di dati fanno. Questo viene normalmente fatto utilizzando Backbone.js , Ember.js , Knockout.js o un altro strumento.

  • La messaggistica client / server viene eseguita tramite websocket usando qualcosa come socks.js o socket.io .

  • La connessione lato client a MongoDB è davvero interessante. Replica il driver del server MongoDB nel client. Sfortunatamente, l'ultima volta che ho controllato, stavano ancora lavorando per proteggere questa connessione al database.

  • La compensazione della latenza consiste semplicemente nell'aggiornare prima il modello lato client, quindi inviare l'aggiornamento al server-server.

Potrebbero esserci altri bei pezzi che puoi trovare sul sito di Meteor o su GitHub .


10
Anche se carino, questo non risponde davvero alla domanda.
Prigioniero ZERO

2
forse risponde alla domanda nascosta nella domanda
Muhammad Umer

1
Questa risposta afferma chiaramente che meteor fa tutte le comunicazioni client / server utilizzando websocket. Penso che anche questo abbia risposto alla domanda.
Usama Ahmed

meteor js e node js sono ancora correlati nella v0.9?
yozawiratama

28

Dichiarazione di non responsabilità : questa risposta descrive Meteor , la libreria client JavaScript per Meteor Server . È stato originariamente aggiunto a causa dell'ambiguità nella domanda e può servire allo scopo di chiarire ambiguità simili affrontate dai visitatori alla ricerca di risposte simili, ma incerti sulla differenza.

Per leggere il framework JavaScript Meteor , vedere questa risposta di xer0x .

Come accennato nella documentazione di Meteor Server, Meteor è un'implementazione di Comet . La cometa a sua volta è una controparte di AJAX .

In caso di AJAX, di solito fai una richiesta quando il cliente vede la necessità di farlo. Per estrarre gli aggiornamenti dal server, dovrai chiamare il server ad es. ogni 5 secondi.

In caso di Comet, l'aggiornamento dal server arriva più velocemente, perché la connessione è persistente. La connessione viene stabilita dal client, come in AJAX, ma il server non risponde fino a quando non ha qualche aggiornamento o non raggiunge il limite di esecuzione (gli script sul server possono avere limiti di esecuzione).

In caso di Meteor ottieni solo un flusso costante di dati che necessita di un codice lato server specifico (come Meteor Server) e del codice appropriato sul client (in questo caso sembra che sia la classe Meteor).


1
C'è Meteor e c'è Meteor Server. Ho la sensazione che la domanda originale riguardasse la prima e questa risposta riguardasse la seconda? meteor.com e meteorserver.org
ile

2
No, il materiale di Meteor.com è una forma avanzata di Comet. Nello specifico utilizza un polling lungo, puoi guardarlo negli strumenti di sviluppo di Chrome.
wmil

1
@ile: Sì, esiste un framework JavaScript chiamato Meteor ( github.com/meteor/meteor ) e c'è Meteor.js , una parte client per Meteor Server ( meteorserver.org/client-docs ). Credo che questa sia la domanda troppo ambigua per dire quale di questi PO avesse davvero in mente.
Tadeck

5
@ile In realtà, ero interessato a meteor.com. In realtà non sapevo di meteorserver.org prima del tuo commento.
Jatin

2
Il framework meteor.js NON è il server http meteor. Nonostante la scarsa scelta di denominazione delle persone che hanno creato il framework. Vedi meteor.com per ulteriori informazioni.
xer0x

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.