¿Cómo funciona el marco de JavaScript de Meteor? [cerrado]

108

Me encontré con Meteor y, aunque parece emocionante, quiero saber cómo funciona. Me refiero a que las aplicaciones web convencionales funcionan así: tiene scripts en el servidor que toman datos de la base de datos y los agregan dinámicamente a las páginas web y los datos enviados por el usuario se agregan a las bases de datos a través de otros scripts.

Pero, ¿cómo funcionan estas cosas en Meteor? ¿Cómo se relacionan las diferentes partes de Meteor entre sí?

Jatin
fuente
8
Esta es una pregunta constructiva y fáctica. Cualquier respuesta válida TIENE que estar "respaldada por hechos, referencias o experiencia específica". Aparentemente, casperOne ha entendido mal la pregunta o los criterios para designar una pregunta como no constructiva.
Charlie Flowers
3
Pero esta pregunta probablemente solicitará una "discusión extensa" y no tiene una respuesta de "respuesta".
durron597
9
@ durron597 Creo que estás diciendo que la respuesta a la pregunta es muy grande (corrígeme si no he entendido bien). Puedo ver eso, pero eso no es lo mismo que ser "no constructivo". La definición de "no constructivo" en el resumen estándar que aparece a continuación deja en claro que la etiqueta "no constructivo" es para preguntas no objetivas. Esta pregunta es 100% objetiva. Meteor funciona como lo hace. Si comienzan a aparecer varias opiniones aquí, todas menos una estarán equivocadas.
Charlie Flowers
@mplungjan No encuentro ninguna de estas respuestas satisfactoria porque ninguna de ellas aborda adecuadamente el principio Meteor de "Datos en el cable. Meteor no envía HTML a través de la red. El servidor envía datos y permite que el cliente los renderice". el primer principio de los 7 principios.
Alexander Mills

Respuestas:

81

Meteor es un marco que actualiza elegantemente HTML en tiempo real.

La belleza de Meteor es que solo necesita crear las plantillas y los modelos de datos. El resto del código repetitivo habitual está oculto. No es necesario que escriba todo el código de sincronización.

Las piezas clave de Meteor se pueden construir tú mismo usando estas piezas:

  • Proporciona plantillas que se actualizan automáticamente cuando lo hacen sus modelos de datos. Esto normalmente se hace usando Backbone.js , Ember.js , Knockout.js u otra herramienta.

  • La mensajería cliente / servidor se realiza a través de websockets usando algo como socks.js o socket.io .

  • La conexión del lado del cliente a MongoDB es realmente genial. Replica el controlador del servidor MongoDB en el cliente. Desafortunadamente, la última vez que verifiqué, todavía estaban trabajando para asegurar esta conexión de base de datos.

  • La compensación de latencia es simplemente actualizar primero el modelo del lado del cliente y luego enviar la actualización al servidor-servidor.

Puede haber otras piezas interesantes que puede encontrar en el sitio de Meteor o en GitHub .

xer0x
fuente
10
Si bien es bueno, esto realmente no aborda la pregunta.
Prisoner ZERO
2
tal vez responda a la pregunta oculta en la pregunta
Muhammad Umer
1
Esta respuesta establece claramente que meteor hace toda la comunicación cliente / servidor mediante websockets. Creo que eso también respondió a la pregunta.
Usama Ahmed
¿El meteoro js y el nodo js todavía están relacionados en v0.9?
yozawiratama
28

Descargo de responsabilidad : esta respuesta describe Meteor , biblioteca cliente de JavaScript para Meteor Server . Originalmente se agregó debido a la ambigüedad de la pregunta y puede servir para aclarar ambigüedades similares a las que se enfrentan los visitantes que buscan respuestas similares, pero no están seguros de la diferencia.

Para leer sobre el marco de JavaScript de Meteor , consulte esta respuesta de xer0x .

Como se menciona en la documentación de Meteor Server, Meteor es una implementación de Comet . Comet, a su vez, es una contraparte de AJAX .

En el caso de AJAX, normalmente realiza una solicitud cuando el cliente ve la necesidad de hacerlo. Para obtener actualizaciones del servidor, deberá llamar al servidor, por ejemplo. cada 5 segundos.

En el caso de Comet, la actualización desde el servidor es más rápida, porque la conexión es persistente. La conexión la establece el cliente, como en AJAX, pero el servidor no responde hasta que tiene alguna actualización o alcanza el límite de ejecución (los scripts en el servidor pueden tener límites de ejecución).

En el caso de Meteor, solo obtiene un flujo constante de datos que necesita un código específico del lado del servidor (como Meteor Server) y el código apropiado en el cliente (en este caso parece que es de la clase Meteor).

Tadeck
fuente
1
Hay Meteor y hay Meteor Server. Tengo la sensación de que la pregunta original era sobre lo primero y esta respuesta era sobre lo segundo. meteor.com y meteorserver.org
ile
2
No, las cosas de Meteor.com son una forma avanzada de Comet. Específicamente, utiliza un sondeo largo, puede verlo en las herramientas de desarrollo de Chrome.
wmil
1
@ile: Sí, existe un marco de JavaScript llamado Meteor ( github.com/meteor/meteor ) y hay Meteor.js , una parte del cliente para Meteor Server ( meteorserver.org/client-docs ). Creo que esta es la pregunta es demasiado ambigua para decir cuál de estos OP tenía realmente en mente.
Tadeck
5
@ile En realidad, estaba interesado en meteor.com. De hecho, no sabía nada de meteorserver.org antes de tu comentario.
Jatin
2
El marco meteor.js NO es el servidor http de meteor. A pesar de la mala elección de nombres de las personas que hicieron el marco. Consulte meteor.com para obtener más información.
xer0x
25

Toda la magia con la actualización de datos en vivo se debe al sistema de seguimiento de dependencias. Puede encontrar una explicación de cómo funciona en la sección Rastreador de la documentación.

snez
fuente
Meteor.deps ha cambiado de nombre a Meteor.tracker. Fuente aquí
Benjamin Crouzier
Creo que esto se ha trasladado a docs.meteor.com/#/full/tracker
Nimir