2017-09-05 4 views
0

J'apprends Vapor et suis resté sur la bonne façon d'interagir avec le serveur. Donc, voici l'idée de ce que je fais ..Vapor - Obtenir le modèle de HTML

Vous téléchargez un fichier XML sur le serveur, il le traite, le transforme en une grande liste d'objets Modèle, et renvoie une liste d'objets json. Utilisation de feuille, je peuple les modèles à une vue de la table. exemple:

#loop(objects, "object") { 
     <tr> 
     <td>#(object.id)</td> 
     <td>#(object.name)</td> 
     </tr> 
    } 

Ce fichier fonctionne tous. Voici où je suis coincé. En haut de ma vue de table, j'ai quelques boutons qui vont effectuer des actions sur le tableau d'objets. c'est-à-dire: renommez les objets par lots, ou appliquez-leur une sorte de logique. Ensuite, je veux la fonctionnalité pour télécharger la liste des objets de modèle dans divers formats.

Je veux que toute cette logique vive sur mon serveur de vapeur. Où je suis perdu est de savoir comment faire passer cette très grande liste avec le serveur Vapor. Le serveur doit-il stocker une liste des objets de la session Web en cours? J'ai regardé en utilisant Javascript dans le HTML, mais aurais-je alors besoin d'analyser le DOM pour créer mes objets de modèle. À ce stade, rien ne se passerait dans la vapeur. (Certaines de ces tâches étaient très gourmandes en ressources

Je regardais couramment, mais la question était: est-ce que j'aurais une base de données pour la session en cours, et que je la supprimerais quand je serais fini? ce concept? Je pense que lorsque vous téléchargez le XML, il crée un ID de session, et toutes vos demandes sont basées sur cela.L'ID expirera à un moment donné.Ceci est tout deviner sur ce qui fonctionnerait le mieux ..

Toutes les idées sur la meilleure façon de manipuler les objets du modèle de vapeur?

Merci!

Répondre

0

Je pense que lorsque vous téléchargez le XML, il crée un ID de session, et toutes vos demandes sont basées sur cela. Ensuite, l'ID expirera à un moment donné.

Bingo. Si vous êtes certain que vous souhaitez que ce traitement se produise côté serveur, vous avez déjà répondu à votre question. Vous devriez avoir une table de base de données où les objets du modèle sont stockés avec un ID de session aléatoire (qui peut être géré par Vapor en utilisant SessionsMiddleware).

Lorsque votre utilisateur a terminé le traitement de ses modèles, vous supprimez tous les objets avec leur ID de session. Vous devez également exécuter régulièrement un travail planifié qui supprime les modèles appartenant à des sessions expirées.

Si vous décidez d'implémenter l'authentification de l'utilisateur, vous pouvez utiliser l'ID utilisateur au lieu de l'ID de session.