2012-02-15 5 views
0

J'ai une application où j'utilise JavaScript sur le côté client pour créer une collection. Sur page1.html je donne les résultats suivants:JQuery - Stockage et récupération de tableaux

var collection = []; 
$.each(item, function (i, r) { 
    collection.push(r); 
}); 
alert(collection.length); 

window.localStorage.setItem("collection", collection); 

Lorsque ce code est exécuté, je vois "4" dans une boîte de message. C'est exactement ce que j'attends. Quand je navigue à Page2.html, je donne les résultats suivants:

$(document).ready(function() { 
    var collection = window.localStorage.getItem("collection"); 
    alert(collection.length); 
}); 

Lorsque ce code est exécuté, je vois « 63 » dans une boîte de message. Je m'attendais à "4". Je n'ai aucune idée de ce que cela causerait. Mon intuition est que cela a quelque chose à voir avec le fait que j'essaie de stocker une collection et que je n'obtiens pas le réglage comme je le devrais. Cette approche a fonctionné pour certaines valeurs purement liées à la chaîne dans mon application. Je ne sais pas pourquoi cela ne fonctionne pas ici. Quelqu'un peut-il me diriger dans la bonne direction?

Merci!

Répondre

0

localStorage ne peut être utilisé que pour stocker des objets en tant que chaînes, vous devrez donc sérialiser votre liste sous forme de chaîne (en utilisant peut-être des virgules ou un caractère nul).

Une idée consiste à utiliser la méthode JSON.stringify de jQuery sur collection et de stocker cela.

N'hésitez pas à consulter this post pour plus d'informations.

+0

Wow! Je vous remercie beaucoup pour votre aide. C'était le problème. –

Questions connexes