2013-03-06 6 views
1

Bonne journée à tous,stockage de base de données vs Cookies - Pour stocker des données

J'ai une forme avec environ 90 à 100 champs, divisé en formes sous, qui sont chargés en utilisant ajax chaque fois qu'un formulaire doit être affiché . mais je voudrais conserver les données sur les champs de formulaire chaque fois qu'un sous-formulaire est chargé (disons sur une actualisation accidentelle de page ou même si l'utilisateur change de sous-formulaire). Quelle est la meilleure façon de le faire? Je pensais que je peux le stocker dans des cookies ou laisse dire dans la base de données. Mais, le stocker dans la base de données signifierait que je devrais interroger pour les données de champs chaque fois qu'un sous-formulaire est chargé. Et encore une fois, s'il s'agissait de cookies, il doit lire les données stockées dans les fichiers cookie. J'ai besoin d'aide pour décider quel est le moyen le plus efficace, plus en termes de vitesse.

Quelle est la meilleure façon parmi ceux-ci, ou est-il une autre possibilité de conserver les champs de données dans les formes de sous, chaque fois qu'ils sont chargés (qui sont chargés via AJAX chaque fois.)

Je travaille avec PHP et framework Codeigniter.

Merci!

+0

Do it in côté client. Sisyphe est un bon outil pour cela qui utilise le stockage local. – itachi

+0

Je voudrais pouvoir accepter les deux réponses de Tim et Marshall, les deux sont super. Je vous remercie! – Archer

Répondre

2

Je voudrais tout d'abord simplifier en utilisant serialize:

$data = serialize(array_merge($_POST,$olddata)); 

Ensuite, cela peut être suffisant pour vous, mais il est maintenant super facile à stocker partout car il est juste une chaîne. Pour réformer dans son état d'origine:

$data = unserialize($data); 

.. où vous finissez par le tirant de - base de données, session, etc ..

+0

Merci, c'est une très bonne suggestion! – Archer

3

Une forme comme celle-là doit être stockée durablement. Je considérerais l'état de session pour lisser les charges de sous-formulaire, avec des écritures à la base de données chaque fois que l'utilisateur met à jour quelque chose de conséquence. Personnellement, je commencerais par une solution de base de données uniquement, puis j'ajouterais l'état de la session si les performances posent problème.

Les cookies ne sont pas destinés à stocker de grandes quantités de données. Même si étaient possible, ils gonflent considérablement la demande (imaginez 100 champs de formulaire étant tous transmis avec chaque requête).

Le stockage local dans le navigateur est également une option, bien que je considère d'abord les autres options.

+0

Oui, j'ai eu le même sentiment à propos des cookies. – Archer

2

Prose base de données Il peut également accéder à partir d'un autre ordinateur trop Vous peut stocker jusqu'à beaucoup plus de données puis cookie Cônes Si vous retrive données par ajax il coukd cose plus charge sur le serveur

cookie plus rapide que la base de données aucune requête, chercher et tous les processus. Cônes quantité limitée d'espace

Cependant, vous pouvez utiliser le stockage local

réponse est donc le stockage de base de données

Questions connexes