Chalalo Land

Tecnologías ASP.NET y un poco Más

Contacto


 Si quierer cooperar, yo feliz, muy agradecido :)

De donde me Visitan?

Locations of visitors to this page

Generic Content

Si te gustaron los articulos, y te animas te estaría muy agradecido!


Recent Posts

Tags

Community

Blogs de MVP

Amigos Geeks

Blogs Imperdibles

GODS

Archives

Email Notifications

HTML5–Utilizando el LocalStorage, ejemplo práctico.

Hola que tal? Como ya saben hablar HTML5 está muy de moda, entonces como hay que ponerse a tono vamos a hacer un ejemplo de la utilización del localStorage de HTML5.

Con esta funcionabilidad vamos a poder implementar un cache local en el navegador, es decir, almacenar información en el cliente de manera persistente a lo largo de la sesión de un usuario. Esta tecnología viene a sustituir las cookies, además el tamaño máximo es entre 5 a 10 Megas (Depende de cada navegador), puedes revisar esto acá:

http://arty.name/localstorage.html
y revisar el post del Master John Resig sobre el tema:
http://ejohn.org/blog/dom-storage/

Y también es importante remarcar que los datos van a están disponibles mientras el usuario no cierre la ventana y están asociados a un dominio.

Ahora el ejemplo, primero vamos a tener el siguiente HTML, que consiste en una lista:

<!DOCTYPE html>
 
<html lang="en">

    <head>

        <meta charset="utf-8" />

        <title></title>

    </head>

    <body>

    <header>

       <h1> Mi Lista de Tareas </h1>

       <span id="mensaje"></span>

    </header>

        <section>

            <ul id="lista" contenteditable="true">

                <li></li>

            </ul>

        </section>

     <input type="button" id="limpiar" value="Limpiar" />

    </body>

 </html>

Podemos observar la propiedad contenteditable=”true” que es de HTML5 y nos permite editar el elemento, de esta manera los elementos de la lista los vamos a poder ingresar desde el teclado Sonrisa

Ahora la idea es que cuando el foco se salga de la lista, podamos almacenar la información de los elementos de la lista en el localStorage de manera de refrescar la página y que los datos no se pierdan (alguien recuerda el viewstate?). Veamos el código BLOCKED SCRIPT

<script type="text/javascript" src="js/jquery.min.js"></script>

<script type="text/javascript">

$(document).ready(function() {

        $("#limpiar").click(function(){

               localStorage.removeItem('listado');

         });

           

         $("#lista").blur(function(){

                 localStorage.setItem('listado',$("#lista").html());

          });

        if (localStorage.getItem('listado')){

                $("#mensaje").text("Desde el LocalStorage");

                $("#lista").html(localStorage.getItem('listado'));

            }else{

                $("#mensaje").text("Sin datos en  el LocalStorage");

            }

        });   

</script>

Primero que nada , tenemos un botón que va a limpiar la lista, con el método removeItem podemos remover el elemento almacenado, también podemos utilizar clear() para remover todos los items dentro del LS.

Luego en el evento  blur() de la lista, esto es, cuando se saca el foco, vamos a almacenar los que se ha escrito, es decir, el contenido html, para esto utilizamos el método setItem en donde especificamos el KeyName y los datos  a almacenar.

El código que viene a continuación nos permite determinar si existe el elemento almacenado dentro de la cache mediante el keyname, y si es así enviamos un mensaje y al elemento lista le asignamos el la propiedad html (esto es por que ocupamos jquery si no, es innerHTML) el contenido desde el LS.

Y el resultado:

image

Comienzo a llenar la lista a mano, la lista es editable.

Luego al recargar la página (o al tener otro IE9 abierto y cerrar la página del ejemplo).

image

Y si presiono Limpiar y luego recargo:

image

Espero que te sirva, vi este ejemplo en un video, lo modifiqué un poco, y quería compartirlo Sonrisa
Nos vemos!

Saludos!
Gonzalo

Posted: 19/5/2011 19:03 por Gonzalo Perez | con 3 comment(s)
Archivado en: ,
Comparte este post:

Comentarios

Andres Said Espinace Sufán ha opinado:

Que buen ejemplo, me quedo clarito, esto es muy util para los formularios xD

# May 19, 2011 11:19 PM

Javi ha opinado:

El ejemplo esta bien, pero me parece que el localstorage es persistente aunque cierres el navegador, el que se elimina despues de cerrar el navegador creo que es sessionstorage.

Saludos.

# May 25, 2011 10:53 AM

Gonzalo Perez ha opinado:

Hola Javi,

Al revés, mira, prueba el ejemplo, yo recién lo hice por que me entró la duda,  cierro el browser y ya los datos no están, de hecho eso dice la documentación.

Es almacenamiento por browser en la maquina local.

Lo mejor es que lo pruebes tu mismo :)

Saludos!

# May 25, 2011 3:01 PM