Seguramente ya escuchaste sobre el almacenamiento local de HTML5, la intensión de este post es pegarle un vistazo para que empieces a usarlo.
Primero tenemos que tener en cuenta que LocalStorage es el almacenamiento que no expira, y SessionStorage es el que vive sólo en una sesión.
Ambos tienen los mismos métodos:
getItem ( key )
setItem ( key , value )
removeItem ( key )
Van a ver por ahí un globalStorage: es una implementación de Mozilla previa a HTML5, pero desde la versión de Firefox 13 dejó de soportarse, por lo que olvidate de que existe 😉
No hay mucho para explicar sobre los métodos ya que hablan por si solos, veamos un ejemplo:
También se puede utilizar los Items como propiedades del objeto localStorage ó sessionStorage (pero no está recomendado, así que tomalo como título informativo):
Y cuánto podemos almacenar?: depende mucho del navegador, pero la cantidad oscila entre 2.5 y 5 Mb (2.5 Mb en la mayoría de los navegadores, lo cual es bastante 😉 )
Pueden ver la tabla completa y probar cuanto se banca el navegador en el que están en Web Storage Test
Podemos guardar JSON?, Si, pero yo te recomendaria que sea serializado, (en String) y lo que hagas antes de enviarlo.
Por que esto?
Por los “fallbacks/ polyfills”, si queremos agregarle un soporte a cookies por si no tiene disponible el web storage, puede que tengamos problemas si no estamos manejando strings.
Lo serializa de todas formas, pero la diferencia es que no es automático, por lo que podemos tener comportamientos extraños:
Ahora, con JSON?, supongamos que tenemos:
Guardamos directo el JSON al localStorage:
Como habría que hacerlo:
Por último te dejo un fallback a Cookies, ya que no siempre tenemos soporte para usarlo, está es una implementacion de Mozilla bastante coqueta (no se si funciona en IE 7, por ejemplo), la idea es que en nuestra aplicación usamos directamente window.localStorage y siempre va a existir, si el browser no lo soporta va a ir a cookies automáticamente. Fuente: MDN – DOM Storage