Comment fonctionne le framework JavaScript Meteor? [fermé]

108

Je suis tombé sur Meteor et même si cela semble passionnant, je veux savoir comment cela fonctionne. Je veux dire que les applications Web conventionnelles fonctionnent comme ceci: vous avez des scripts sur le serveur qui prennent les données de la base de données et les ajoutent dynamiquement aux pages Web et les données soumises par l'utilisateur sont ajoutées aux bases de données via d'autres scrips.

Mais comment fonctionnent ces choses dans Meteor? Comment les différentes parties de Meteor sont-elles liées les unes aux autres?

Jatin
la source
8
C'est une question factuelle et constructive. Toute réponse valide DOIT être "étayée par des faits, des références ou une expertise spécifique". Apparemment, casperOne a mal compris la question ou les critères pour désigner une question comme non constructive.
Charlie Flowers
3
Mais cette question sollicitera probablement une «discussion approfondie» et n'a pas de «réponse».
durron597
9
@ durron597 Je pense que vous dites que la réponse à la question est très large (corrigez-moi si j'ai mal compris). Je peux le voir, mais ce n'est pas la même chose que d'être "non constructif". La définition de «non constructif» dans le résumé standard qui apparaît ci-dessous indique clairement que la balise «non constructive» est destinée aux questions non objectives. Cette question est objective à 100%. Meteor fonctionne comme il fonctionne. Si plusieurs opinions commencent à apparaître ici, alors toutes sauf une vont être fausses.
Charlie Flowers
@mplungjan Je ne trouve aucune de ces réponses satisfaisante car aucune d'elles ne répond adéquatement au principe Meteor de "Données sur le fil. Meteor n'envoie pas de HTML sur le réseau. Le serveur envoie des données et laisse le client les rendre." le premier principe des 7 principes.
Alexander Mills

Réponses:

81

Meteor est un framework qui met à jour élégamment le HTML en temps réel.

La beauté de Meteor est qu'il vous suffit de créer les modèles et les modèles de données. Le reste du code passe-partout habituel est caché. Vous n'avez pas besoin d'écrire tout le code de synchronisation.

Les pièces clés de Meteor pourraient être construites vous-même à l'aide de ces pièces:

  • Il fournit des modèles qui se mettent à jour automatiquement lorsque vos modèles de données le font. Cela se fait normalement en utilisant Backbone.js , Ember.js , Knockout.js ou un autre outil.

  • La messagerie client / serveur se fait via des websockets en utilisant quelque chose comme socks.js ou socket.io .

  • La connexion côté client à MongoDB est vraiment cool. Il réplique le pilote du serveur MongoDB dans le client. Malheureusement, la dernière fois que j'ai vérifié, ils travaillaient toujours à la sécurisation de cette connexion à la base de données.

  • La compensation de latence consiste simplement à mettre à jour d'abord le modèle côté client, puis à envoyer la mise à jour au serveur-serveur.

Il peut y avoir d'autres éléments intéressants que vous pouvez trouver sur le site Meteor ou sur GitHub .

xer0x
la source
10
Bien que gentil, cela ne répond pas vraiment à la question.
Prisonnier ZERO
2
peut-être que cela répond à la question cachée dans la question
Muhammad Umer
1
Cette réponse indique clairement que meteor effectue toutes les communications client / serveur à l'aide de Websockets. Je pense que cela a également répondu à la question.
Usama Ahmed
météore js et nœud js sont-ils toujours liés dans la v0.9?
yozawiratama
28

Clause de non - responsabilité : Cette réponse décrit Meteor , la bibliothèque cliente JavaScript pour Meteor Server . Il a été ajouté à l'origine en raison de l'ambiguïté de la question et peut servir à clarifier des ambiguïtés similaires auxquelles sont confrontés les visiteurs à la recherche de réponses similaires, mais incertains de la différence.

Pour en savoir plus sur le framework JavaScript Meteor , veuillez consulter cette réponse de xer0x .

Comme mentionné dans la documentation de Meteor Server, Meteor est une implémentation de Comet . Comet à son tour est un équivalent d' AJAX .

Dans le cas d'AJAX, vous faites généralement une demande lorsque le client voit le besoin de le faire. Pour extraire les mises à jour du serveur, vous devrez appeler le serveur, par exemple. toutes les 5 secondes.

Dans le cas de Comet, la mise à jour du serveur est plus rapide, car la connexion est persistante. La connexion est établie par le client, comme dans AJAX, mais le serveur ne répond pas tant qu'il n'a pas été mis à jour ou qu'il n'a pas atteint la limite d'exécution (les scripts sur le serveur peuvent avoir des limites d'exécution).

Dans le cas de Meteor, vous obtenez juste un flux constant de données qui nécessite un code spécifique côté serveur (comme Meteor Server) et un code approprié sur le client (dans ce cas, il semble qu'il s'agit de la classe Meteor).

Tadeck
la source
1
Il y a Meteor et il y a Meteor Server. J'ai le sentiment que la question initiale portait sur la première et cette réponse concernait la seconde? meteor.com et meteorserver.org
ile
2
Non, le contenu de Meteor.com est une forme avancée de Comet. Plus précisément, il utilise une longue interrogation, vous pouvez le regarder dans les outils de développement Chrome.
wmil
1
@ile: Oui, il existe un framework JavaScript appelé Meteor ( github.com/meteor/meteor ) et il y a Meteor.js , une partie client de Meteor Server ( meteorserver.org/client-docs ). Je pense que c'est la question qui est trop ambiguë pour dire lequel de ces PO avait vraiment à l'esprit.
Tadeck
5
@ile En fait, je m'intéressais à meteor.com. En fait, je ne connaissais pas meteorserver.org avant votre commentaire.
Jatin
2
Le framework meteor.js n'est PAS le serveur http meteor. Malgré le mauvais choix de nom des personnes qui ont fait le cadre. Voir meteor.com pour en savoir plus.
xer0x
25

Toute la magie de la mise à jour des données en direct se produit grâce au système de suivi des dépendances. Une explication de son fonctionnement peut être trouvée dans la section Tracker de la documentation.

snez
la source
Meteor.deps a été renommé Meteor.tracker. Source ici
Benjamin Crouzier
Je pense que cela a été déplacé vers docs.meteor.com/#/full/tracker
Nimir