Como habeis observado al iniciar la revista, el navegador os pedia vuestro nombre para poder completar el saludo que aparecia en la parte superior de la pagina de inicio, pero... ¿que pasa si cerrais del navegador y volveis a arrancar la magazine? Ya no os pregunta vuestro nombre, lo incluye en el saludo sin ningun tipo de pregunta. ¿Y como he hecho esto? Con una poco de JavaScript, claro.
Para los que no controlen el ingles, hay que decir que cookie traducido al castellano significa galleta, pero como queda bastante mal decir que voy a enseñar a hacer galletas... mejor lo llamare por su nombre original "cookie" ;) Una cookie es un elemento de una lista que se guarda en el fichero cookies.txt en el ordenador del visitante (en el caso de usar Netscape) o en el directorio cookies (si nuestro navegador es el Explorer) . Solo el servidor que ha enviado al usuario una determinada cookie podra consultarla, teniendo en cuenta que cada una tiene un tamaño maximo de 4Kb y solo puede haber un maximo de 300 cookies en el disco duro.
Los elementos de lista de los que hablabamos antes deben tener dos campo obigatorios: el nombre y su valor; y uno opcional: la fecha de caducidad. Este ultimo campo sireve para establecer la fecha en la cual la cookie sera eliminada de nuestro disco duro. El formato es el siguiente:
nombre=valor;[expires=caducidad;]
Comenzamos la programacion:
Para poder hacer algo con las cookies necesitamos, logicamente, dos funciones. Una que se encargue de enviarla y otra de leer su contenido.
function
enviarCookie(nombre, valor, caducidad) {
document.cookie = nombre + "=" + escape(valor)
+ ((caducidad == null) ? "" :
("; expires=" + caducidad.toGMTString()))
}
Esta es la funcion encargada de enviar la cookie. Vemos que el valor es codificado por medio de la función escape y que la caducidad (en caso de decidir ponerla) debe ser convertida a formato GMT. Esto se hace mediante el metodo toGMTString() del objeto Date.
function
consultarCookie(nombre) {
var buscamos = nombre + "=";
if (document.cookie.length > 0) {
i = document.cookie.indexOf(buscamos);
if (i != -1) {
i += buscamos.length;
j = document.cookie.indexOf(";",
i);
if (j == -1)
j = document.cookie.length;
return unescape(document.cookie.substring(i,j));
}
}
}
Ahora declaramos la variable buscamos que contiene el nombre de la cookie que deseamos buscar más el signo igual que se escribe justo después de cada nombre, para que así no encontremos por error un valor o una subcadena de otro nombre que sea igual al nombre de la galleta que buscamos. Una vez encontrada extraemos la subcadena que hay entre el igual que separa el nombre y el valor y el punto y coma con que termina dicho valor.
Y ahora un ejemplo:
El ejemplo que viene a continuacion nos sireve para conocer por completo el funcionamiento de las cookies. Este ejemplo es muy usado en las paginas web y se utiliza para saber cuantes veces a sido visitada por una persona.
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Se usan los comentarios para esconder el código a
navegadores sin JavaScript
function Contador() {
var fecha=new Date (99, 12, 31);
if (!(num=consultarCookie("VisitasAlCursoDeCookies")))
num = 0;
num++;
mandarCookie("VisitasAlCursoDeCookies",
num, fecha);
if (num==1)
document.write("esta
es la primera vez que lees esta seccion.");
else {
document.write("has
visitado esta seccion"+num+" veces.");
}
}
// -->
</SCRIPT>
</HEAD>
<BODY>
Segun parece,
<SCRIPT LANGUAGE="JavaScript">
<!--
Contador();
// -->
</SCRIPT>
</BODY>
</HTML>
Esta funcion consulta el valor de la cookie incrementandola, y si no existiese le da el valo de uno. Y por ultimo escribe en la pagina web el numero de veces que la has visitado.