Los últimos tutoriales de desarrollo web
 

JavaScript Cookies


Cookies permiten almacenar información del usuario en páginas web.


¿Cuáles son Cookies ?

Cookies son datos, almacenados en archivos de texto pequeños, en el equipo.

Cuando un servidor web ha enviado una página web a un navegador, la conexión se cierra, y el servidor se olvida de todo lo relacionado con el usuario.

Cookies se inventaron para resolver el problema de "cómo recordar información sobre el usuario":

  • Cuando un usuario visita una página web, su nombre se puede almacenar en una cookie .
  • La próxima vez que el usuario visita la página, la cookie "recuerda" su nombre.

Las cookies se guardan en pares de nombre y valor como:

username = John Doe

Cuando una petición del navegador una página web desde un servidor, cookies que pertenecen a la página se agrega a la solicitud. De esta manera el servidor recibe los datos necesarios para "recordar" información acerca de los usuarios.


Crear a Cookie con Javascript

JavaScript puede crear, leer y borrar cookies con el document.cookie propiedad.

Con JavaScript, a cookie puede ser creado de esta manera:

document.cookie = "username=John Doe";

También puede agregar una fecha de caducidad (en hora UTC). Por defecto, the cookie se elimina cuando se cierra el navegador:

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";

Con un parámetro de ruta, puede decirle al navegador qué camino the cookie pertenece. Por defecto, the cookie pertenece a la página actual.

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

Leer a Cookie con Javascript

Con JavaScript, cookies se pueden leer como esto:

var x = document.cookie;

document.cookie devolverá todas cookies en una secuencia muy similar: cookie1=value; cookie2=value; cookie3=value; cookie1=value; cookie2=value; cookie3=value;


Cambiar a Cookie con Javascript

Con JavaScript, puede cambiar a cookie la misma manera que lo crea:

document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

La edad cookie se sobrescribe.


Eliminar a Cookie con Javascript

Eliminación de a cookie es muy simple. Sólo hay que establecer el parámetro expira a una fecha pasada:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC";

Tenga en cuenta que usted no tiene que especificar a cookie valor cuando se elimina a cookie .


La Cookie de cuerdas

El document.cookie propiedad parece una cadena de texto normal. Pero no lo es.

Incluso si usted escribe un conjunto cookie cadena a document.cookie , cuando lo lea de nuevo, sólo se puede ver el par nombre-valor de la misma.

Si se establece una nueva cookie , de mayor edad cookies no se sobrescriben. La nueva cookie se añade a document.cookie , por lo que si usted lee document.cookie nuevo obtendrá algo como:

cookie1 = value; cookie2 = value;

Si desea encontrar el valor de un determinado cookie , debe escribir una función de JavaScript que busca la cookie valor en la cookie cadena.


JavaScript Cookie Ejemplo

En el ejemplo a seguir, vamos a crear a cookie que almacena el nombre de un visitante.

La primera vez que un visitante llega a la página web, se le pedirá que complete su nombre. El nombre se almacena en a cookie .

La próxima vez que el visitante llega a la misma página, recibirá un mensaje de bienvenida.

Para el ejemplo vamos a crear 3 funciones de JavaScript:

  1. Una función para configurar una cookie valor
  2. Una función para obtener una cookie valor
  3. Una función para comprobar una cookie valor

Una función para establecer a Cookie

En primer lugar, creamos una función que almacena el nombre del visitante en a cookie variables:

Ejemplo

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

Ejemplo explicó:

Los parámetros de la función de arriba son el nombre de la cookie (cname) , el valor de the cookie (cvalue) , y el número de días hasta que la cookie debe expirar (exdays).

La función establece a cookie sumando el cookiename , the cookie valor, y la vence cadena.


Una Función para obtener a Cookie

Luego, creamos una función que devuelve el valor de un determinado cookie :

Ejemplo

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length,c.length);
        }
    }
    return "";
}

Funciones que se explican:

Tome the cookiename como parámetro (CNAME).

Crear una variable (nombre) con el texto que desea buscar (cname + "=").

Dividir document.cookie en punto y coma en una matriz llamada ca (ca = document.cookie.split(';')) .

Lazo a través del ca array (i=0;i<ca.length;i++) , y dio lectura a cada valor de c=ca[i]) .

Si the cookie es encontrado (c.indexOf(name) == 0) , devolver el valor de the cookie (c.substring(name.length,c.length) .

Si the cookie no se encuentra, volver "".


Una función que controla a Cookie

Por último, creamos la función que checks si a cookie se establece.

Si the cookie se establece que aparezca un saludo.

Si the cookie no está establecido, se mostrará un cuadro de diálogo, preguntando por el nombre del usuario, y almacena el nombre de usuario cookie por 365 días, llamando al setCookie función:

Ejemplo

function checkCookie() {
    var username=getCookie("username");
    if (username!="") {
        alert("Welcome again " + username);
    } else {
        username = prompt("Please enter your name:", "");
        if (username != "" && username != null) {
            setCookie("username", username, 365);
        }
    }
}

Todos juntos ahora

Ejemplo

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

function checkCookie() {
    var user = getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
        user = prompt("Please enter your name:", "");
        if (user != "" && user != null) {
            setCookie("username", user, 365);
        }
    }
}
Inténtalo tú mismo "

El ejemplo anterior se ejecuta el checkCookie() función cuando se carga la página.