plugin leer ejemplos domain crear cookie javascript jquery cookies jquery-cookie

javascript - leer - js cookie session



¿Cómo almaceno una matriz de objetos en una cookie con jQuery $.cookie()? (2)

Intenté esto hoy y no pude hacerlo funcionar. Más tarde descubrí que era porque tenía 3 objetos muy grandes que intenté guardar en una cookie.

La forma en que trabajé alrededor de esto fue mediante el almacenamiento de la información en el almacenamiento local de los navegadores.

ejemplo:

localStorage.setItem("test2", JSON.stringify(obj) ) localStorage.getItem("test2")

Más información sobre el almacenamiento local: cookies vs almacenamiento local

4 horas de mi tiempo descargo esto, no cometas el mismo error.

Tengo una lista de objetos javascript:

var people = [ { ''name'' : ''Abel'', ''age'' : 1 }, { ''name'' : ''Bella'', ''age'' : 2 }, { ''name'' : ''Chad'', ''age'' : 3 }, ]

Intenté almacenarlos en una cookie del navegador con jQuery $ .cookie ():

$.cookie("people", people);

Luego recupero esta cookie y luego intento introducir otro objeto en ella:

var people = $.cookie("people"); people.push( { ''name'' : ''Daniel'', ''age'' : 4 } );

Sin embargo, esto no funciona; Analicé este código en Firebug y la Consola notó que las people eran una cadena ( "[object Object],[object Object],[object Object]" ) y que la función de inserción no existía.

Que esta pasando? ¿Cuál es la forma correcta de almacenar y recuperar una lista de objetos?


Las cookies solo pueden almacenar cadenas. Por lo tanto, necesita convertir su matriz de objetos en una cadena JSON. Si tiene la biblioteca JSON, simplemente puede usar JSON.stringify(people) y almacenarla en la cookie, luego usar $.parseJSON(people) para desestimarla.

Al final, su código se vería así:

var people = [ { ''name'' : ''Abel'', ''age'' : 1 }, { ''name'' : ''Bella'', ''age'' : 2 }, { ''name'' : ''Chad'', ''age'' : 3 }, ]; $.cookie("people", JSON.stringify(people)); // later on... var people = $.parseJSON($.cookie("people")); people.push( { ''name'' : ''Daniel'', ''age'' : 4 } ); $.cookie("people", JSON.stringify(people));