Visão geral dos cookies
Se uma estrutura imutável for usada para armazenar dados da coluna de compras e a página de exibição do produto estiver em constante mudança, embora isso possa atingir uma função de simulação de variáveis globais, não é rigoroso. Por exemplo, se você clicar com o botão direito na página do quadro de navegação e clicar no comando [Atualizar] no menu de atalho, todas as variáveis JavaScript serão perdidas. Portanto, para implementar variáveis globais estritas entre páginas, este método não é viável. Outro mecanismo em JavaScript: os cookies podem atender aos requisitos de variáveis globais verdadeiras.
Um cookie é um mecanismo fornecido pelo navegador que fornece o atributo cookie do objeto de documento ao JavaScript. Pode ser controlado por JavaScript e não é uma propriedade do próprio JavaScript. Um cookie é um arquivo armazenado no disco rígido do usuário. Este arquivo geralmente corresponde a um nome de domínio. Quando o navegador acessa novamente o nome de domínio, o cookie é disponibilizado. Portanto, os cookies podem abranger várias páginas da Web sob um nome de domínio, mas não podem ser usados em vários nomes de domínio.
Diferentes navegadores implementam cookies de forma diferente, mas as suas propriedades são as mesmas. Por exemplo, no Windows 2000 e no Windows XP, os arquivos de cookies são armazenados na pasta documentos e configuraçõesuserNamecookie. O formato de nomenclatura usual é: [email protected] .
O mecanismo de cookies armazena informações no disco rígido do usuário, podendo ser utilizado como variável global. Esta é uma de suas maiores vantagens. Pode ser usado nas seguintes situações.
1. Salve o status de login do usuário. Por exemplo, o ID do usuário é armazenado em um cookie para que o usuário não precise fazer login novamente na próxima vez que visitar a página. Muitos fóruns e comunidades agora oferecem essa função. Os cookies também podem definir um prazo de validade. Quando o limite de tempo expirar, o cookie desaparecerá automaticamente. Portanto, o sistema muitas vezes pode solicitar que os usuários permaneçam conectados: as opções comuns são um mês, três meses, um ano, etc.
2. Acompanhe o comportamento do usuário. Por exemplo, um site de previsão do tempo pode exibir as condições climáticas locais com base na área selecionada pelo usuário. Se você precisar selecionar o local todas as vezes, será complicado. Quando os cookies forem usados, ele será exibido automaticamente. o último usuário. Condições meteorológicas em sua área. Como tudo é feito em segundo plano, essa página é como se fosse customizada para um determinado usuário e é muito conveniente de usar.
3. Personalize a página. Caso o site disponibilize a função de alteração de skin ou layout, os cookies poderão ser utilizados para registrar as opções do usuário, como cor de fundo, resolução, etc. Na próxima vez que o usuário visitar, o estilo de interface da última visita ainda poderá ser salvo.
4. Crie um carrinho de compras. Assim como no exemplo anterior, os cookies são utilizados para registrar os itens que o usuário precisa adquirir, e podem ser enviados de maneira uniforme durante a finalização da compra. Por exemplo, o Taobao usa cookies para registrar os produtos que os usuários navegaram, para que possam ser comparados a qualquer momento.
Claro, os aplicativos acima são apenas alguns dos aplicativos que os cookies podem completar, e há mais funções que requerem variáveis globais. As desvantagens dos cookies concentram-se principalmente na segurança e proteção da privacidade. Inclui principalmente as seguintes categorias:
1. Os cookies podem ser desativados. Quando um usuário presta muita atenção à proteção da privacidade pessoal, é provável que desative a função de cookies do navegador.
2. Os cookies estão relacionados ao navegador; Isso significa que mesmo que você visite a mesma página, os cookies salvos por navegadores diferentes não poderão ser acessados entre si.
3. Os cookies podem ser excluídos; Como cada cookie é um arquivo no disco rígido, é provável que seja excluído pelo usuário.
4. A segurança dos cookies não é alta o suficiente; Todos os cookies são gravados em arquivos em forma de texto simples, portanto, se você deseja salvar nome de usuário, senha e outras informações, é melhor criptografá-los com antecedência.
Definir cookies.
Cada
cookie é um par nome/valor Você pode atribuir a seguinte string a document.cookie:
document.cookie=”userId=828″;
divisão separada por espaços (;), por exemplo:
document.cookie=”userId=828; userName=hulk”;
ponto-e-vírgula (;), vírgulas (,) e sinais de igual (=) não podem ser usados em nomes ou valores de cookies. e espaços. É fácil fazer isso no nome do cookie, mas o valor a ser salvo é indefinido. Como armazenar esses valores? O método consiste em usar a função escape() para codificar, que pode usar representação hexadecimal de alguns símbolos especiais. Por exemplo, os espaços serão codificados como "20%", que podem ser armazenados no valor do cookie, e usar esta solução pode. também evite o surgimento de caracteres chineses distorcidos. Por exemplo:
document.cookie="str="+escape("I love ajax");
Equivalente
a:
document.cookie="str=I%20love%20ajax";
o valor Use unescape() para decodificar e obter o valor original do cookie, que foi introduzido anteriormente.
Embora document.cookie pareça uma propriedade e possa receber valores diferentes. Mas é diferente dos atributos gerais. Alterar sua atribuição não significa perder o valor original. Por exemplo, executar as duas instruções a seguir continuamente:
document.cookie
=”userId=828″
;
desta vez, o navegador manterá dois cookies, ou seja, userId e userName, portanto, atribuir um valor a document.cookie é mais como executar uma instrução como esta:
document.addCookie
("userId=828");
hulk" );
Na verdade, o navegador define cookies desta forma. Se você quiser alterar o valor de um cookie, você só precisa reatribuí-lo, por exemplo:
document.cookie="userId=929";
Isso mudará o cookie chamado userId O valor é definido como 929.
Obtenha o valor do cookie
A seguir é descrito como obter o valor do cookie. O valor do cookie pode ser obtido diretamente de document.cookie:
var strCookie=document.cookie;
Isso obterá uma string que consiste em vários pares nome/valor separados por ponto e vírgula. Esses pares nome/valor incluem os nomes sob o nome de domínio. Todos os biscoitos.
No desenvolvimento real, os cookies geralmente precisam ser salvos por um longo período, como salvar o status de login do usuário. Isso pode ser feito usando as seguintes opções:
document.cookie=”userId=828 expira=GMT_String”;
Entre eles, GMT_String é uma string de tempo expressa no formato GMT. Esta instrução define o cookie userId para o tempo de expiração representado por GMT_String.
Excluindo cookies
Para excluir um cookie, você pode definir seu tempo de expiração para um horário passado.
Especifique o caminho onde o cookie pode ser acessado Por padrão, se um cookie for criado em uma página, o cookie também poderá ser acessado por outras páginas no diretório onde a página está localizada. Se houver subdiretórios neste diretório, você também poderá acessá-lo nos subdiretórios. Por exemplo, um cookie criado em www.xxxx.com/html/a.html pode ser acessado por www.xxxx.com/html/b.html ou www.xxx.com/html/some/c.html , mas não pode ser acessado por www.xxxx.com/d.html .
Para controlar o diretório que os cookies podem acessar, você precisa usar o parâmetro path para definir os cookies. A sintaxe é a seguinte:
document.cookie="name=value; path=cookieDir"
onde cookieDir representa o diretório onde os cookies podem acessar
.ser acessado. Por exemplo:
document.cookie="userId=320; path=/shop";
significa que o cookie atual só pode ser usado no diretório shop.
Se quiser disponibilizar cookies em todo o site, você pode especificar cookie_dir como o diretório raiz, por exemplo:
document.cookie
=
"userId=320; path=/";
caminho O nome do host refere-se aos mesmos hosts diferentes em um domínio, por exemplo:
www.google.com e gmail.google.com são dois nomes de host diferentes. Por padrão, os cookies criados em um host não podem ser acessados em outro host, mas podem ser controlados através do parâmetro domínio. O formato da sintaxe é:
document.cookie="name=value; domain=cookieDomain" ";
Tomando o Google como exemplo. , para obter acesso entre hosts, você pode escrever:
document.cookie="name=value;domain=.google.com";
Dessa forma, todos os hosts em google.com podem acessar o cookie.
Exemplo abrangente: Construindo uma função geral de manipulação de cookies
O processo de processamento de cookies é relativamente complexo e apresenta certas semelhanças. Portanto, diversas funções podem ser definidas para completar operações comuns de cookies, conseguindo assim a reutilização de código. As operações de cookies comumente usadas e suas implementações de funções estão listadas abaixo.
1. Definir COOKIES
função SetCookie(nome,valor,expira,caminho,domínio,seguro)
{
var expDays = expira*24*60*60*1000;
var DataExp = new Data();
expDate.setTime(expDate.getTime()+expDays);
var expString = ((expira==null) ? “” : (”;expires="+expDate.toGMTString()))
var pathString = ((caminho==nulo) ? "" : (";caminho="+caminho))
var domínioString = ((domínio==nulo) ? “” : (”;domínio="+domínio))
var secureString = ((secure==true) ? “;secure” : “” )
document.cookie = nome + “=" + escape(valor) + expString + pathString + domainString + secureString;
}
2. Obtenha o valor do cookie do nome especificado:
função GetCookie(nome)
{
var resultado = nulo;
var meuCookie = document.cookie + ";";
var nomePesquisa = nome + "=";
var startOfCookie = meuCookie.indexOf(searchName);
var endOfCookie;
if (startOfCookie! = -1)
{
startOfCookie += nomedapesquisa.comprimento;
endOfCookie = meuCookie.indexOf(";",startOfCookie);
resultado = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
resultado de retorno;
}
3. Exclua o cookie com o nome especificado:
função ClearCookie(nome)
{
var Três Dias=3*24*60*60*1000;
var DataExp = new Data();
expDate.setTime(expDate.getTime()-TrêsDias);
document.cookie=nome+”=;expires=”+expDate.toGMTString();
}