2010-11-16 10 views
3

Je l'ai pour que les utilisateurs puissent copier et coller des objets d'une page à l'autre. J'utilise des cookies pour contenir les données de l'objet.Dois-je diffuser mes données sur plusieurs cookies pour contourner la limite de 4 Ko?

Dans de très rares occasions, la quantité de données (en cas d'échappement) a dépassé la limite de 4 Ko.

Il y a deux façons de contourner cela que je peux voir.

  1. compresse ce qui se passe dans le cookie (dans les tests cela me donnera environ 5 fois la capacité) de test
  2. les données et si elle dépasse 4k, étaler sur plusieurs cookies (bâtiment un mécanisme de chaînage de sorte qu'ils peut facilement être reconstruit)

Je pense que la première solution pourrait simplement pousser le problème plus loin sous le tapis et reviendra et me mordre dans les mois à venir.

Mais la deuxième solution est-elle une bonne idée? Est-ce que quelqu'un l'a déjà fait ou y a-t-il un autre mécanisme de stockage côté client qui serait mieux ici?

NB: Je l'ai utilisé sessvars.js ailleurs dans le site et je l'ai regardé en utilisant jstorage

Répondre

1

J'ai décidé d'aller de l'avant et d'utiliser jstorage comme mentionné dans la question. C'est une alternative décente à ce que j'ai et utilise html 5 localstorage si le navigateur le permet.

2

Avez-vous déjà pensé à utiliser localStorage à la place? Vous avez 4/5 Mo d'espace en fonction du navigateur que vous utilisez

http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-learning-about-html5-local-storage/

Quoi qu'il en soit sur le navigateur ne supportant pas plus localStorage je choisirais la première solution car les cookies sont passés avec les en-têtes http donc je préfère moins solution de cookies.

+0

Il s'agit d'une toute nouvelle technologie, de sorte que vous tuez la compatibilité avec tous les navigateurs d'avant 2009 si vous comptez sur elle pour les fonctionnalités de base. C'est utile pour ce genre de chose, cependant. – Chuck

+0

c'est pourquoi il pourrait utiliser les deux technologies, en faisant une détection de caractéristiques et en utilisant un cookie compressé uniquement sur un navigateur plus ancien –

+0

Il s'agit d'une application interne de l'entreprise, donc nous avons mandaté firefox pour l'utiliser. Le lien jstorage que j'ai posté utilisera le stockage local s'il est disponible –

2

HTML5 localStorage est très utile. Je ne connais pas vos besoins mais il est compatible avec IE8 +, et la plupart des navigateurs modernes.