2009-10-24 4 views
3

Pour mon application Web, je dois stocker des entrées de formulaires couvrant plusieurs pages, jusqu'à ce que je processus enfin/les manipuler pour produire des résultats (sa mise en forme principalement les données saisies et de le présenter dans une mise en page). Les options que je pense que j'ai sont -Stockage des données persistantes dans le navigateur

  1. continuer à envoyer des entrées au serveur, y stocker dans une base de données, faire la manipulation finale de l'utilisateur là seulement, et montrer le résultat.

  2. Stocker les entrées dans le stockage du navigateur que l'utilisateur remplit les formulaires, et enfin utiliser ces données stockées pour manipuler et afficher les résultats.

J'ai très envie d'utiliser la deuxième méthode, et peut-être un moyen possible est en utilisant des cookies, mais je crains que je pourrais juste frapper une limite supérieure de stockage de données de cookie. Je suis également ouvert à la compréhension des mérites de la première méthode, ou de toute autre méthode.

merci.

Répondre

3

Frapper la limite de stockage du cookie pourrait indiquer que vous essayez de stocker trop sur le côté client. Il pourrait être prudent de le stocker sur le serveur, dans quelque chose comme une session. La clé de la session pourrait alors être stockée dans un cookie. Une méthode alternative consiste à ne pas faire en sorte que les requêtes couvrent plusieurs pages et à stocker les données côté client, non pas en tant que cookie, mais en tant que champs de formulaire et/ou champs de texte différents (ils peuvent être masqués). Le mérite d'une telle méthode est qu'il ne frappe pas la limite de cookie comme vous l'avez fait. Il rend également votre code serveur plus facile/plus propre, car il n'a pas à garder trace de l'état (quelque chose que vous devriez toujours faire si vous traversez les pages, et donc la raison pour laquelle vous atteignez la limite des cookies en premier lieu) .

0

En général, les cookies ont une taille maximale de 4k de sorte que vous pouvez stocker un peu de données là-dedans.

Soyez prudent avec la validation de toutes les informations qui vit les cookies - toutes les informations se trouve sur un navigateur client et peut facilement être manipulé par les utilisateurs du site à tout moment.

Vous n'avez pas indiqué quelle plate-forme vous utilisez. Spring Webflow fait exactement le type de traitement de formulaire que vous voulez: http://www.springsource.org/webflow

Même si vous n'utilisez pas Java, vous pouvez utiliser certains des principes. Editer: Un autre inconvénient des cookies persistants gros/complexes est que vous devez vous assurer que tout nouveau code que vous déployez est rétrocompatible avec tous les cookies qui sont dans la nature.

0

Je suggère de stocker les données dans une variable de session jusqu'à ce que vous obtenez à l'étape finale plutôt qu'un cookie. Je pense que cela serait plus sûr pour vos données car l'utilisateur n'a pas directement accès aux données, vous pouvez donc les valider au fur et à mesure.

4

Utilisez WebStorage (vous pouvez stocker côté client autour 5MB de texte ou de données binaires)

Firefox demo: http://codebase.es/test/webstorage.html

DOM Storage est pris en charge dans ces navigateurs web:

  • Internet Explorer 8
  • Firefox 2 pour sessionStorage, 3,5 pour
  • localStorage
  • Safari 4

Il suffit de google pour sessionStorage et localStorage objets. De plus, les navigateurs webkit modernes prennent en charge la technologie sql côté client. Je ne suis pas sûr de ce que vous voulez faire, mais en utilisant AJAX vous pouvez stocker tout dans les variables javascript et les bases de données ou les sessions sur le serveur sont un bon choix.

1

Vous pouvez utiliser un petit film Flash pour stocker des données via la mémoire partagée de Flash ou regarder Google Gears.
Peut-être aussi considérer que chaque octet que vous stockez dans le cookie doit être transmis chaque fois que votre site fait une demande au serveur.

+0

Un peu en retard, mais Google Gears est obsolète. Voir [Hello HTML5] (http://gearsblog.blogspot.com/2010/02/hello-html5.html) sur le blog Google Gears. – jww

+1

@jww Qu'attendiez-vous d'une réponse de 5 ans? :-RÉ – TheHippo

Questions connexes