tutoriais mais recente desenvolvimento web
 

JavaScript Cookies


Cookies permitem armazenar informações do usuário em páginas da web.


O que são Cookies ?

Cookies são dados, armazenados em pequenos arquivos de texto, no seu computador.

Quando um servidor web enviou uma página web para um navegador, a conexão é encerrada, eo servidor esquece tudo sobre o usuário.

Cookies foram inventadas para resolver o problema "como se lembrar de informações sobre o usuário":

  • Quando um usuário visita uma página web, o seu nome pode ser armazenado em um cookie .
  • Próxima vez que o usuário visita a página, o cookie "lembra" o seu nome.

Os cookies são guardados em pares nome-valor como:

username = John Doe

Quando uma solicitação do navegador uma página web a partir de um servidor, cookies pertencentes à página é adicionada ao pedido. Desta forma, o servidor recebe os dados necessários para "lembrar" informações sobre os usuários.


Criar a Cookie com JavaScript

JavaScript pode criar, ler e apagar cookies com o document.cookie propriedade.

Com JavaScript, a cookie pode ser criado assim:

document.cookie = "username=John Doe";

Você também pode adicionar uma data de expiração (em tempo UTC). Por padrão, the cookie é apagado quando o navegador é fechado:

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

Com um parâmetro de caminho, você pode dizer ao navegador que caminho the cookie pertence. Por padrão, the cookie pertence à página atual.

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

Leia a Cookie com JavaScript

Com JavaScript, cookies podem ser lidos assim:

var x = document.cookie;

document.cookie retornará todos os cookies em uma cadeia muito parecido: cookie1=value; cookie2=value; cookie3=value; cookie1=value; cookie2=value; cookie3=value;


Alterar a Cookie com JavaScript

Com JavaScript, você pode alterar a cookie do mesmo modo que você criá-lo:

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

O velho cookie é substituído.


Excluir a Cookie com JavaScript

Excluindo a cookie é muito simples. Basta definir o parâmetro expira para uma data passada:

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

Note que você não tem que especificar a cookie valor quando você excluir a cookie .


O Cookie de Cordas

O document.cookie propriedade se parece com uma cadeia de texto normal. Mas não é.

Mesmo se você escrever um todo cookie corda para document.cookie , quando você lê-lo novamente, você só pode ver o par nome-valor do mesmo.

Se você definir um novo cookie , mais velhos cookies não são substituídos. O novo cookie é adicionado à document.cookie , então se você ler document.cookie mais você vai obter algo como:

cookie1 = value; cookie2 = value;

Se você quiser encontrar o valor de um especificado cookie , você deve escrever uma função JavaScript que procura o cookie valor no cookie string.


JavaScript Cookie Exemplo

No exemplo a seguir, vamos criar a cookie que armazena o nome de um visitante.

A primeira vez que um visitante chega à página web, ele será convidado a preencher o seu nome. O nome é então armazenado em a cookie .

A próxima vez que o visitante chega à mesma página, ele receberá uma mensagem de boas-vindas.

Para o exemplo, vamos criar 3 funções de JavaScript:

  1. Uma função para definir um cookie valor
  2. Uma função para obter um cookie valor
  3. Uma função para verificar um cookie valor

Uma função para definir a Cookie

Primeiro, criamos uma função que armazena o nome do visitante em a cookie variável:

Exemplo

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;
}

Exemplo explicou:

Os parâmetros da função acima são o nome do cookie (cname) , o valor do the cookie (cvalue) , eo número de dias até que o cookie deve expirar (exdays).

A função define a cookie somando o cookiename , the cookie de valor, ea cadeia de expirar.


Uma função para obter a Cookie

Então, criamos uma função que retorna o valor de um determinado cookie :

Exemplo

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 "";
}

Função explicou:

Tome the cookiename como parâmetro (cname).

Criar uma variável (nome) com o texto a ser pesquisado (cname + "=").

Dividir document.cookie em ponto e vírgula em uma matriz chamada ca (ca = document.cookie.split(';')) .

Loop através da ca array (i=0;i<ca.length;i++) , e leu cada valor c=ca[i]) .

Se the cookie é encontrado (c.indexOf(name) == 0) , retornar o valor de the cookie (c.substring(name.length,c.length) .

Se the cookie não é encontrado, retorne "".


Uma função para verificar a Cookie

Última, criamos a função que checks se a cookie está definido.

Se the cookie é definido ele irá mostrar uma saudação.

Se the cookie não está definido, ele irá mostrar uma caixa de alerta, pedindo o nome do utilizador, e armazena o nome de usuário cookie por 365 dias, chamando o setCookie função:

Exemplo

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 agora

Exemplo

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);
        }
    }
}
Tente você mesmo "

O exemplo acima corre o checkCookie() função quando a página é carregada.