Con el desarrollo de las nuevas API que vienen con el HTML5, podemos optar por ciertas alternativas a las cookies (que tanto dolor de cabeza han dado últimamente).

Estos métodos que sirven para almacenar datos vía Javascript son localStorage y sessionStorage

Por supuesto, no podemos reemplazar completamente las cookies (no podemos acceder mediante PHP a un item de localStorage), pero gracias a ellas podemos almacenar datos, y acceder a ellos en otro momento.

El soporte actual es de todos los navegadores menos IE7 y menor (sí, IE8 lo soporta)

localStorage

Con window.localStorage podemos almacenar datos hasta que nosotros queramos, con sus métodos setItem y getItem.

Obviamente, sólo podemos ver datos almacenados en nuestro mismo dominio (por razones de seguridad).

Un ejemplo:

//Comprobación por IE7
if("localStorage" in window){
// Asignamos a la clave "nombre-de-usuario" el valor "Pepe"
window.localStorage.setItem("nombre-de-usuario", "Pepe");
}

// En otra parte del código, mostramos el nombre si existe
if( "localStorage" in window && window.localStorage.getItem("nombre-de-usuario") ){
alert("Hola, " + localStorage.getItem("nombre-de-usuario"));
} else {
alert("Hola, desconocido!")
}

// Para borrar el nombre de usuario
if("localStorage" in window && confirm("¿Quieres que borremos tu nombre de usuario?")){
localStorage.removeItem("nombre-de-usuario")
}

Este es un ejemplo muy simple, pero se puede usar para muchísimas cosas.

sessionStorage

El objeto sessionStorage funciona de la misma manera que localStorage, con una diferencia: localStorage es permanente (el usuario puede cerrar el navegador y apagar el ordenador que los datos siguen almacenados), que sessionStorage es borrado al cerrar el navegador.

Para una explicación algo más detallada que mis propias palabras, recomiendo leer la documentación de MDN

Un pensamiento en “localStorage y sessionStorage: Alternativas (parciales) a las cookies

  1. El Do Not Track aterriza en Chrome: ¿será el fin de la publicidad personalizada? | Bloggin ZenithBloggin Zenith

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes usar las siguientes etiquetas y atributos HTML:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre data-language=""> <ul> <ol> <li>
Para poner código usa <pre data-language="[lenguaje]"><code>[código]</code></pre>, y no olvides escapar el HTMl.