web-dev-qa-db-fra.com

Comment fonctionne le framework JavaScript Meteor?

Je suis tombé sur Meteor et bien que 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 scripts.

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

107
Jatin

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 peuvent être construites vous-même en utilisant ces pièces:

  • Il fournit un modèle qui se met à 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 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 sur la sécurisation de cette connexion à la base de données.

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

Il peut y avoir d'autres pièces intéressantes que vous pouvez trouver sur le site Meteor , ou sur GitHub .

81
xer0x

Clause de non-responsabilité : Cette réponse décrit Meteor, Bibliothèque client 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 rencontrées par les visiteurs à la recherche de réponses similaires, mais incertains de la différence.

Pour en savoir plus sur Framework JavaScript Meteor , veuillez consulter cette réponse par xer0x .

Comme mentionné dans la documentation du serveur Meteor, Meteor est une implémentation de Comet . La comète à son tour est une contrepartie de [~ # ~] ajax [~ # ~] .

Dans le cas d'AJAX, vous faites généralement une demande lorsque le client voit un 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 depuis le 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 jusqu'à ce qu'il ait une mise à jour ou qu'il atteigne la limite d'exécution (les scripts sur le serveur peuvent avoir des limites d'exécution).

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

28
Tadeck

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

25
snez