2016-09-07 3 views
0

Cela peut être une question facile à répondre car il peut être mon manque de compréhension, mais si vous devez exécuter la requête deux fois - une fois du serveur et une fois sur le client - pourquoi ne pas simplement publier toutes les données de la collection , puis exécutez simplement une requête sur le client?Meteor - Pourquoi ne pas simplement publier toutes les données de la collection?

Évidemment, je ne veux pas faire cela pour la collection des utilisateurs, mais si vous avez une collection de blog Posts, ce ne serait pas bénéfique?

Publiez toutes les données post, puis abonnez-vous et exécutez toutes les requêtes nécessaires sur le client pour obtenir les données dont vous avez besoin.

+0

La mémoire n'est pas illimitée. –

Répondre

4

La publication de tout est bon pour l'environnement de 'développement' car météore ajoute autopublish par défaut mais cela a quelques erreurs dans l'environnement 'production'. Je trouve que ces deux points sont importants

  1. Sécurité: L'idée est de fournir autant de données que nécessaire au client. Vous ne pouvez jamais faire confiance au client et vous ne savez pas à quoi le client peut utiliser les données. Pour votre cas d'utilisation, des articles de blog simples, cela peut ne pas être un risque sérieux mais peut être un risque critique pour l'application de commerce électronique. La dernière chose que vous voulez est un pirate informatique pour utiliser les données et exploiter un bug dans votre code pour faire des choses désagréables.
  2. Surcoûts de données: Pour les abonnements, généralement waitOn est utilisé. Ainsi, jusqu'à ce que toutes les données aient été mises à la disposition du client, les modèles ne sont pas rendus. Si vous avez une très grande quantité de données, cela prendra un temps considérable. Donc, il est conseillé de garder les données à l'étape «seulement ce qu'il faut» pour optimiser cette fois aussi.