SessionStorage y LocalStorage permite guardar pares clave/valor en un navegador web. El valor debe ser una cadena y guardar objetos js no es trivial.Guardar objetos de Javascript en sessionStorage
var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
Hoy en día, se puede evitar esta limitación seria objetos a JSON, y luego deserializar para recuperar los objetos. Pero la API de almacenamiento siempre pasa por los métodos setItem
y getItem
.
sessionStorage.setItem('user', JSON.stringify(user));
var obj = JSON.parse(sessionStorage.getItem('user')); // An object :D
¿Puedo evitar esta limitación?
sólo quiero ejecutar algo como esto:
sessionStorage.user.name; // 'John'
sessionStorage.user.name = 'Mary';
sessionStorage.user.name // 'Mary'
He probado los defineGetter
y defineSetter
métodos para interceptar las llamadas, pero es un trabajo tedioso, porque tengo que definir todas las propiedades y mi objetivo no es para conocer las propiedades futuras.
he pensado en eso mismo. Supongo que mucha gente tiene. Pero no creo que los métodos getter y setter sean una carga excesiva. Por cierto; puede serializar y analizar con JavaScript y MS finalmente admite los mismos objetos estándar que cualquier otra persona. Los días de necesidad de paquetes como JSON y jQuery están llegando rápidamente a su fin. –
Supongo que no veo la limitación. Puede parecer exagerado utilizar JSON.stringify y JSON.parse si solo tiene objetos triviales, pero si tiene incluso objetos de datos de buen tamaño, esos dos métodos le están haciendo un gran esfuerzo. – Robusto
"¿Puedo evitar esta limitación?" parece una pregunta – sonicblis