Os cookies são informações que ficam armazenadas no computador do usuário e se parecem com as variáveis, permanecendo no computador mesmo depois do browser ser fechado. Eles são gravados no HD do usuário. Os cookies armazenam pouca informação, de forma que não dá para executar programas a partir dele, pois têm muitas restrições, até por segurança da linguagem javaScript. Dessa forma, o usuário poderá ficar despreocupado com o que está sendo armazanado no seu computador através do javaScrip. Na verdade ele tem um esquema de segurança que proibe qualquer tipo de acesso malicioso no computador do usuário.
Estas informações podem ser feitas através de um servidor remoto, em um banco de dados de uma outra máquina, no entanto, algumas informações devem ser armazenadas localmente. As vantagens: acesso mais rápido, não é necessário o acesso pela rede, pode-se limpar os cookies quando quiser, o que não acontece se as informações estiverem em um banco de dados, existindo certa flexibilidade em relação aos cookies.
Relembrando:No javaScript:
var nome = "Filipe"
var nome = prompt("Digite seu nome");
A desvantagem é que ao coletar o nome dessa variável através do prompt para
obter o nome do internauta por exemplo, ela será válida somente para essa função.
No javaScript: window.onload = function() { document.getElementById("ada").onclick = ligar; var nome = prompt("Digite seu nome"); } function ligar() { document.getElementById("ada").src = "/static/img/lampada_on.jpg"; setTimeout("desligar()", 3000); } function desligar() { document.getElementById("ada").src = "/static/img/lampada2_off.jpg"; }
Para obter acesso através das outras funções deve-se colocar a variável fora da função. No entanto o valor dessa variável permanecerá somente enquanto a página estiver aberta. Ao ser fechada a página, o javaScript destruirá todas as variáveis inicializadas no documento.
No javaScript: var nome = prompt("Digite seu nome"); window.onload = function() { document.getElementById("ada").onclick = ligar; setInterval(mostrarHoras, 1000); } function ligar() { document.getElementById("ada").src = "/static/img/lampada_on.jpg"; setTimeout(desligar, 3000); } function desligar() { document.getElementById("ada").src = "/static/img/lampada2_off.jpg"; } function mostrarHoras() { var agora = new Date(); var horas = agora.getHours() + ":" + agora.getMinutes() + ":" + agora.getSeconds(); document.getElementById("horas").innerHTML = horas; }
Usando o exemplo da lâmpada. Quando a página for carregada ao clicar nela o nome será mantido, mesmo depois do browser ser fechado. Isto será possível com os cookies
No javaScript: var nome = prompt("Digite seu nome"); window.onload = function() { document.getElementById("ada").onclick = ligar; setInterval(mostrarHoras, 1000); } function ligar() { document.getElementById("ada").src = "/static/img/lampada_on.jpg"; setTimeout(desligar, 3000); } function desligar() { document.getElementById("ada").src = "/static/img/lampada2_off.jpg"; } function mostrarHoras() { var agora = new Date(); var horas = agora.getHours() + ":" + agora.getMinutes() + ":" + agora.getSeconds(); document.getElementById("horas").innerHTML = horas; }
Acesso e gravação de informações dentro do cookie. Para gravar um cookie no computador proceder da seguinte forma:
No elemento document que está dentro de windows.
document.cookie="nome=valor; expires=data; path=/";
Onde o nome pode ser qualquer um, máximo de 4k de tamanho, não se deve colocar um objeto grande demais, só podendo
ser armazenados 20 cookies por domínio. Todos os cookies estão vinculados à página em que ele foi criado, tendo
também uma data de expiração. Obs. esta data deve ser no formato GNT -formato internacional. Exemplo abaixo:
new Date().toGMTString();
Para facilitar segue o javaScript com três funções que são utilizadas nos exercícios. Uma para escrever o cookie, outra para ler um cookie e para apagar o cookie. Pode ser utilizado como uma biblioteca para trabalhar com cookies.
No javaScript: Esse javaScript foi salvo com o nome: cookies.js function writeCookie(name, value, days){ //Por default, nâo existe expiração, ou seja o cookie é temporário var expires = ""; //Especifica o número de dias para guardar o cookie if (days) { var date = new Date(); date.setTime(date.getTime)() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } if(value != "" && value != null && value != "null"){ //Define o cookie com o nome, valor e data de expiração document.cookie = name + "=" + value + expires + "; path=/"; } } function readCookie(name){ //Encontra o cookie especificado e retorna o seu valor var searchName = name + "="; var cookies = document.cookie.split(';'); for var i=0; i (cookies.length; i++) { var c = cookies [i]; while (c.chartAt(0) == ' ') c = c.subtring(1, c.length); if (c.indexOf(searchName) == 0) return c.substring(searchName.length, c.length); } /*function eraseCookie(name){ //Exclui o cookie writeCookie(name, "", -1); }*/
Esse javaScript foi salvo com o nome: cookies-aula39.js /* autor : Maria Adalgisa de Souza descrição : COOKIES */ window.onload = function() { document.getElementById("ada").onclick = ligar; setInterval(mostrarHoras, 1000); var nome = prompt("Qual o seu nome?") var nome = readCookie("nome"); if(nome == null){ nome = prompt("Digite seu nome"); writeCookie("nome", nome, 1); } } function ligar() { document.getElementById("ada").src = "/static/img/lampada_on.jpg"; var nome = readCookie("nome"); if(nome != null){ nome = prompt("Digite o seu Nome"); alert("Como vai? " + nome); } setTimeout(desligar, 3000); } function desligar() { document.getElementById("ada").src = "/static/img/lampada2_off.jpg"; } function mostrarHoras() { var agora = new Date(); var horas = agora.getHours() + ":" + agora.getMinutes() + ":" + agora.getSeconds(); document.getElementById("horas").innerHTML = horas; }