trisquel

Aprende JavaScript con ejemplos (XXVII). El BOM (Browser Object Model) (IV). Las cookies

Las cookies aparecieron hace años por la necesidad que tenían los servidores de conocer a sus clientes (navegadores).

Generalmente cuando navegamos supuestamente somos una persona anónima pero en muchos de los casos esto no es necesariamente útil para el servidor. Por ejemplo, imagina que estás comprando en una página web y vas desplazándote de un artículo a otro y quieres mantener el carrito de la compra. Imagina que cierras el navegador por hoy y continuas mañana con las compras…

Un buen sistema debería almacenar todos los artículos que has añadido al cesto de la compra para luego poder vendértelos.

Por lo tanto, las cookies sirven para “recordar información del usuario”. Ni más ni menos. Son pequeños ficheros que se almacenarán en una ruta determinada de tu equipo y que contienen pares clave = valor como por ejemplo:

usuario = Dimas

Cuando el navegador pide una página web, las cookies asociadas a dicha página web se envían también en la petición y de esa manera los servidores te tendrán fichado.

¿Dónde se utilizan las cookies?

  • Monitorizar la actividad de los usuarios. Esta es una de las opciones que menos me gusta. Monitorizar patrones de actividad, gustos, navegación,… Muchas empresas como Amazón utilizan esta técnica. Utilizar las cookies para estos propósitos hace que los usuarios se sientan algo espiados.
  • Para mantener opciones de visualización o de aspecto para el usuario. Imagina que un usuario en alguna página web quiere ver unas cosas y otras no. Las cookies pueden servirnos para este propósito.
  • Almacenar variables en el lado del cliente. Ya sabemos que después de terminar la sesión los datos desaparecerán para el servidor salvo que utilicemos cookies.
  • Identificación o Autentificación. Las cookies tienen un periodo de tiempo de validez pero mientras tanto con las cookies podemos cerciorarnos que cuando un usuario se autentica en el sistema es que lo hizo por primera vez. Podemos jugar con la caducidad de las cookies para mantener a un usuario autenticado y de esa manera mantener una utilización más eficiente de la página.

¿Cómo crear una cookie?

Bastaría con incluir la siguiente línea de código en un script:

document.cookie="usuario=Dimas"

Pero antes decíamos que las cookies tenían una fecha de caducidad. La anterior cookie se eliminará cuando cerremos el navegador. ¿Qué hacer entonces? Pues nada, le añadimos una fecha de caducidad:

document.cookie="usuario=Dimas;expires=Sat, 6 Aug 2016 12:15:00 GMT"

De esa manera me caducará la cookie dentro de un rato. Como podrás imaginar puedes hacer que caduque el año que viene o dentro de 5 años si quieres con lo cual se quedará de forma perpétua.

Vamos a crear un botón que cree una cookie con el siguiente código:

<button type="button" onclick='document.cookie="usuario=Dimas;expires=Sat, 6 Aug 2016 12:15:00 GMT"'>Crear una Cookie</button>

Ejercicio 27.1:
Crea una página web que a su vez cree otras dos cookies con el nombre y el contenido que creas oportuno.

¿Como leer las cookies?

Ya hemos creado la cookie y hemos pulsado el botón. Supuestamente crea una cookie pero ¿lo hace correctamente? Tendremos que hacer algo

Para mostrar las cookies he utilizado el siguiente código:

<button type="button" onclick='alert(document.cookie)'>Ver las Cookies</button>

Ejercicio 27.2:
Añade a tu página web del ejercicio anterior un botón que muestre las cookies de tu documento.
Ejercicio 27.3:
Funciona, ¡pero muestra todas las cookies!
Eso generalmente no es lo que se desea. Lo que queremos es crear una función a la que se pase un parámetro (la clave) y nos devuelva el valor de la cookie.
Ejercicio 27.4:
¿Existirá esta cookie?
Muchas veces nos preguntamos si existe o no una cookie determinada. Nuestra función en caso positivo devolverá verdadero y negativo en caso contrario.
Ejercicio 27.5:
Vamos a crear una función que genere las cookies ella sola.
Crea la función setCookie(nombre,valor,caddias) que creará la cookie nombre con el valor que le pasamos y la caducidad en días (parámetro caddias). De esa forma será mucho más fácil crear cookies en nuestro sistema sin tener que hacer cálculos.

¿Como borrar una cookie?

Vuélvela a crear pero con una fecha antigua. Dale fecha del año pasado y ya estará borrada.

¿Y modificar una cookie?

Vuélvela a crear con los nuevos datos. Ya estará modificada.

Deja un comentario

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

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=""> <strike> <strong>