Gestión de las cookies en JavaScript
Noción de cookie
Gracias a las cookies, es posible escribir en el puesto del usuario información de manera permanente. Sin esta posibilidad, sería necesario recurrir a un lenguaje de programación "orientado a servidor" (PHP, Microsoft ASP.NET, por ejemplo) para almacenar datos en un sistema de gestión de bases de datos (MySQL, PosgreSQL...).
Las cookies, que se presentan como pequeños archivos de texto, pueden contener un número limitado de datos, pero esta técnica puede ser muy valiosa para conservar contenidos de variables en memoria, reutilizables a lo largo de la navegación a través de muchas páginas de su sitio web (conservar identificadores, contraseñas, aunque esto sea peligroso, preferencias de usuario...).
Observe que es posible impedir, en la gran mayoría de los navegadores, que se usen las cookies. Es cierto que esta técnica es relativamente intrusiva. Un sitio web podría, por ejemplo (si no se previene), almacenar en su disco duro sus preferencias respecto a compras y consultas y, de esta manera, proponerle durante una sesión en Internet posterior productos y servicios correspondientes a sus expectativas. En realidad, pocos usuarios bloquean el uso de las cookies, porque una gran mayoría de sitios web las usan (el bloqueo volvería casi imposible la navegación por el sitio la mayor parte del tiempo).
Referencia: http://www.w3schools.com/js/js_cookies.asp...
Escritura de una cookie
La creación de una cookie se hará a través de una función JavaScript, que vamos a crear (poco importa su nombre) como sigue:
/* Definición de la función Javascript de creación de una cookie */
function creacionCookie(nombreCookie, valorCookie, expiracionCookie,
rutaCookie, dominioCookie, seguridadCookie)
{
document.cookie = nombreCookie + ' = ' + escape(valorCookie) + ' ' +
((expiracionCookie == undefined)? '': ('; expires=' +
expiracionCookie.toGMTString())) + ((rutaCookie == undefined)? '':
('; path=' + rutaCookie)) + ((dominioCookie == undefined)? '':
('; domain=' + dominioCookie)) + ((seguridadCookie == true)? ';
seguridadCookie': '');
}
// La función escape codifica los caracteres especiales sustituyéndolos
// por una secuencia %sustituyendo donde sustituyendo es un número
// hexadecimal
/* Creación de una cookie llamando a la función creacionCookie */
var dateExpiration = new Date();
dateExpiration.setTime(dateExpiration.getTime() + 300 * 1000);
// NB: - dateExpiration es un objeto de tipo date (por defecto inicializado
// ...
Lectura de una cookie
Creemos una función de nombre lecturaCookie para leer la cookie miCookie, vista en la sección anterior. El valor deseado de retorno para esta función será el valor de la cookie, es decir, ’Ediciones ENI’.
En primer lugar, nuestra función lee el contenido completo de la cookie. Posteriormente, la función lecturaCookie aísla el elemento deseado (el valor) para devolverlo.
El código (parcial) del script es el siguiente:
/* Definición de la función JavaScript de lectura de una cookie */
function lecturaCookie(nombreCookie)
{
/* Prueba la presencia de la cookie */
if (document.cookie.length == 0)
{
/* Valor de retorno null */
return null;
}
else
{
/* Añadir en la tabla tabElements los elementos de la cookie */
/* NB: Nos basamos en el separador punto y coma */
var tabElements = document.cookie.split(";");
/* Buscar el = separando el nombre del elemento,
del valor del elemento para el primer elemento (número 0) */
var posicionIgual = tabElements[0].indexOf("=", 0);
...
Eliminación de una cookie
La técnica utilizada para eliminar el archivo de cookie es básica. Es suficiente con crear de nuevo la cookie (como se hace en la función creacionCookie) y poner una fecha de expiración anterior a la fecha de sistema (adición de un plazo negativo, por ejemplo).
El código de la función borradoCookie será, por tanto, muy similar al de la función creacionCookie, como se puede ver a continuación:
/* Definición de la función Javascript de borrado de una cookie */
function borradoCookie(nombreCookie, valorCookie, expiracionCookie,
rutaCookie, dominioCookie, seguridadCookie)
{
document.cookie = nombreCookie + ' = ' + escape(valorCookie) + ' ' +
((expiracionCookie == undefined)? '': ('; expires =' +
expiracionCookie.toGMTString())) + ((rutaCookie == undefined)? '':
('; path = ' + rutaCookie)) + ((dominioCookie == undefined)? '':
('; domain = ' + dominioCookie)) + ((seguridadCookie == true)? ';
seguridadCookie': '');
}
// La función escape codifica los caracteres especiales sustituyéndolos
// por una secuencia %sustituyendo donde sustituyendo es un número
// hexadecimal
...