Descripción general de las cookies
Si se utiliza un marco inmutable para almacenar datos de la columna de compras y la página de visualización del producto cambia constantemente, aunque esto puede lograr una función de simulación de variables globales, no es riguroso. Por ejemplo, si hace clic derecho en la página del marco de navegación y hace clic en el comando [Actualizar] en el menú contextual, se perderán todas las variables de JavaScript. Por lo tanto, para implementar variables globales estrictas entre páginas, este método no es factible. Otro mecanismo en JavaScript: las cookies pueden cumplir con los requisitos de las variables globales verdaderas.
Una cookie es un mecanismo proporcionado por el navegador que proporciona el atributo de cookie del objeto de documento a JavaScript. Puede ser controlado por JavaScript y no es una propiedad de JavaScript en sí. Una cookie es un archivo almacenado en el disco duro del usuario. Este archivo normalmente corresponde a un nombre de dominio. Cuando el navegador accede nuevamente al nombre de dominio, la cookie está disponible. Por lo tanto, las cookies pueden abarcar varias páginas web bajo un nombre de dominio, pero no se pueden utilizar en varios nombres de dominio.
Cada navegador implementa las cookies de forma diferente, pero sus propiedades son las mismas. Por ejemplo, en Windows 2000 y Windows XP, los archivos de cookies se almacenan en la carpeta documentos y configuraciónnombre de usuariocookie. El formato de nomenclatura habitual es: nombre de [email protected] .
El mecanismo de cookies almacena información en el disco duro del usuario, por lo que puede usarse como una variable global. Esta es una de sus mayores ventajas. Se puede utilizar en las siguientes situaciones.
1. Guarde el estado de inicio de sesión del usuario. Por ejemplo, la identificación del usuario se almacena en una cookie para que el usuario no necesite iniciar sesión nuevamente la próxima vez que visite la página. Muchos foros y comunidades ahora ofrecen esta función. Las cookies también pueden establecer un tiempo de vencimiento. Cuando expire el límite de tiempo, la cookie desaparecerá automáticamente. Por lo tanto, el sistema a menudo puede solicitar a los usuarios que permanezcan conectados: las opciones comunes son un mes, tres meses, un año, etc.
2. Realice un seguimiento del comportamiento del usuario. Por ejemplo, un sitio web de pronóstico del tiempo puede mostrar las condiciones climáticas locales según el área seleccionada por el usuario. Si necesita seleccionar la ubicación cada vez, será engorroso. Cuando se utilicen cookies, será más fácil de usar. El sistema podrá recordar el área visitada la última vez. La próxima vez que abra la página, se mostrará automáticamente. el último usuario. Condiciones climáticas en su área. Debido a que todo se hace en segundo plano, dicha página es como si estuviera personalizada para un determinado usuario y es muy cómoda de usar.
3. Personaliza la página. Si el sitio web ofrece la función de cambiar la apariencia o el diseño, se pueden utilizar cookies para registrar las opciones del usuario, como el color de fondo, la resolución, etc. La próxima vez que el usuario visite, aún se podrá guardar el estilo de interfaz de la última visita.
4. Crea un carrito de compras. Al igual que en el ejemplo anterior, las cookies se utilizan para registrar los artículos que el usuario necesita comprar y se pueden enviar de manera uniforme durante el proceso de pago. Por ejemplo, Taobao utiliza cookies para registrar los productos por los que han navegado los usuarios y poder compararlos en cualquier momento.
Por supuesto, las aplicaciones anteriores son solo algunas de las aplicaciones que las cookies pueden completar, y hay más funciones que requieren variables globales. Las desventajas de las cookies se centran principalmente en la seguridad y la protección de la privacidad. Incluyen principalmente las siguientes categorías:
1. Las cookies pueden estar deshabilitadas. Cuando un usuario presta gran atención a la protección de la privacidad personal, es probable que desactive la función de cookies del navegador.
2. Las cookies están relacionadas con el navegador; Esto significa que incluso si visita la misma página, no se puede acceder a las cookies guardadas por diferentes navegadores entre sí.
3. Las cookies pueden eliminarse; Debido a que cada cookie es un archivo en el disco duro, es probable que el usuario la elimine.
4. La seguridad de las cookies no es lo suficientemente alta. Todas las cookies se registran en archivos en forma de texto sin formato, por lo que si desea guardar el nombre de usuario, la contraseña y otra información, es mejor cifrarla con anticipación.
Establecer cookies.
Cada cookie es un par de nombre/valor
. Puede asignar la siguiente cadena a document.cookie:
document.cookie=”userId=828″;
dividir separados por espacios (;), por ejemplo:
document.cookie=”userId=828; userName=hulk”;
no se pueden utilizar punto y coma (;), comas (,) ni signos iguales (=) en los nombres o valores de las cookies. y espacios. Es fácil hacer esto en el nombre de la cookie, pero el valor a guardar no está definido. ¿Cómo almacenar estos valores? El método consiste en utilizar la función escape() para codificar, que puede utilizar la representación hexadecimal de algunos símbolos especiales. Por ejemplo, los espacios se codificarán como "20%", que se puede almacenar en el valor de la cookie, y se puede utilizar esta solución. También evite la aparición de caracteres chinos confusos. Por ejemplo:
document.cookie="str="+escape("Me encanta ajax");
Equivalente a:
document.cookie="str=I%20love%20ajax";
cuando se utiliza la codificación escape(), es necesaria después de la recuperación. el valor Utilice unescape() para decodificar y obtener el valor de la cookie original, que se introdujo antes.
Aunque document.cookie parece una propiedad y se le pueden asignar diferentes valores. Pero es diferente de los atributos generales. Cambiar su asignación no significa perder el valor original. Por ejemplo, ejecutar las dos declaraciones siguientes continuamente:
document.cookie
=”userId=828″
;
esta vez, el navegador mantendrá dos cookies, a saber, userId y userName, por lo que asignar un valor a document.cookie es más como ejecutar una declaración como esta:
document.addCookie
("userId=828");
hulk" );
De hecho, el navegador configura las cookies de esta manera. Si desea cambiar el valor de una cookie, solo necesita reasignarla, por ejemplo:
document.cookie="userId=929";
Esto cambiará el cookie llamada userId El valor se establece en 929.
Obtener el valor de la cookie
A continuación se describe cómo obtener el valor de la cookie. El valor de la cookie se puede obtener directamente de document.cookie:
var strCookie=document.cookie;
Esto obtendrá una cadena que consta de múltiples pares de nombre/valor separados por punto y coma. Estos pares de nombre/valor incluyen los nombres bajo el nombre de dominio. Todas las galletas.
En el desarrollo real, las cookies a menudo deben guardarse durante mucho tiempo, como guardar el estado de inicio de sesión del usuario. Esto se puede lograr usando las siguientes opciones:
document.cookie=”userId=828 expires=GMT_String”;
Entre ellos, GMT_String es una cadena de tiempo expresada en formato GMT. Esta declaración establece la cookie de ID de usuario en el tiempo de vencimiento representado por GMT_String. Después de este tiempo, la cookie desaparecerá y será inaccesible.
Eliminar cookies
Para eliminar una cookie, puede establecer su fecha de caducidad en un momento del pasado.
Especifique la ruta donde se puede acceder a la cookie. De forma predeterminada, si se crea una cookie en una página, otras páginas en el directorio donde se encuentra la página también pueden acceder a la cookie. Si hay subdirectorios en este directorio, también puede acceder a él en los subdirectorios. Por ejemplo, www.xxxx.com/html/b.html o www.xxx.com/html/some/c.html pueden acceder a una cookie creada en www.xxxx.com/html/a.html , pero no Se puede acceder a través de www.xxxx.com/d.html .
Para controlar el directorio al que pueden acceder las cookies, debe utilizar el parámetro de ruta para configurar las cookies. La sintaxis es la siguiente:
document.cookie="nombre=valor; ruta=cookieDir"
donde cookieDir representa el directorio donde pueden acceder las cookies
.ser accedido. Por ejemplo:
document.cookie="userId=320; path=/shop";
significa que la cookie actual solo se puede utilizar en el directorio de la tienda.
Si desea que las cookies estén disponibles en todo el sitio web, puede especificar cookie_dir como directorio raíz, por ejemplo:
document.cookie
=
"userId=320; path=/";
ruta El nombre de host se refiere al mismo. Diferentes hosts bajo un dominio, por ejemplo:
www.google.com y gmail.google.com son dos nombres de host diferentes. De forma predeterminada, no se puede acceder a las cookies creadas en un host en otro host, pero se pueden controlar a través del parámetro de dominio. El formato de sintaxis es:
document.cookie="name=value; domain=cookieDomain" ";
tomando Google como ejemplo. Para lograr el acceso entre hosts, puede escribir:
document.cookie="name=value;domain=.google.com"
de esta manera, todos los hosts de google.com pueden acceder a la cookie.
Ejemplo completo: construcción de una función general de manejo de cookies
El proceso de procesamiento de cookies es relativamente complejo y presenta ciertas similitudes. Por lo tanto, se pueden definir varias funciones para completar operaciones comunes de cookies, logrando así la reutilización del código. Las operaciones de cookies más utilizadas y sus implementaciones de funciones se enumeran a continuación.
1. Establecer GALLETAS
función SetCookie(nombre,valor,caduca,ruta,dominio,seguro)
{
var expDays = caduca*24*60*60*1000;
var expDate = nueva fecha();
expDate.setTime(expDate.getTime()+expDías);
var expString = ((expires==null) ? “” : (”;expires="+expDate.toGMTString()))
var rutaString = ((ruta==null) ? "" : (";ruta="+ruta))
var cadenaDeDominio = ((dominio==nulo) ? “” : (”;dominio="+dominio))
var cadenasegura = ((seguro==verdadero) ? “;seguro” : “” )
documento.cookie = nombre + “=" + escape(valor) + cadenaexp + cadenaruta + cadenadominio + cadenasegura;
}
2. Obtenga el valor de la cookie del nombre especificado:
función ObtenerCookie(nombre)
{
resultado var = nulo;
var miCookie = documento.cookie + ";";
var nombrebúsqueda = nombre + "=";
var startOfCookie = myCookie.indexOf(nombredebúsqueda);
var endOfCookie;
si (inicioDeCookie! = -1)
{
startOfCookie += nombrebúsqueda.longitud;
endOfCookie = myCookie.indexOf(";",startOfCookie);
resultado = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
resultado de devolución;
}
3. Eliminar la cookie con el nombre especificado:
función ClearCookie(nombre)
{
var Tres Días=3*24*60*60*1000;
var expDate = nueva fecha();
expDate.setTime(expDate.getTime()-TresDías);
document.cookie=nombre+”=;expires=”+expDate.toGMTString();
}