domingo, 20 de septiembre de 2015

JavaScript - Cookies

¿Qué son las cookies?

Los navegadores Web y servidores utilizan el protocolo HTTP para comunicarse y HTTP es un protocolo sin estado. Pero para un sitio web comercial, se requiere para mantener la información de la sesión entre las diferentes páginas. Por ejemplo, un registro de usuario termina después de completar muchas páginas. Pero la forma de mantener la información de sesión de los usuarios a través de todas las páginas web.
En muchas situaciones, el uso de las cookies es el método más eficiente de recordar y el seguimiento de las preferencias, las compras, las comisiones, y otra información necesaria para la mejor experiencia de visitante o sitio estadísticas.

Cómo funciona ?

Su servidor envía algunos datos al navegador del visitante en la forma de una cookie. El navegador puede aceptar la cookie. Si lo hace, se almacena como un registro de texto sin formato en el disco duro del visitante. Ahora, cuando el visitante llega a otra página en su sitio, el navegador envía la misma cookie al servidor para su recuperación. Una vez recuperado, el servidor sabe / recuerda lo que estaba almacenado antes.
Las cookies son un registro de datos de texto sin formato de 5 campos de longitud variable -
  • Expira - La fecha de la cookie expirará. Si está en blanco, la cookie expirará cuando el visitante se cierra el navegador.
  • Dominio - El nombre de dominio de su sitio.
  • Ruta - La ruta de acceso al directorio o página web que establece la cookie. Esto puede ser en blanco si desea recuperar la cookie desde cualquier directorio o página.
  • Secure - Si este campo contiene la palabra "seguro", entonces la cookie sólo puede ser recuperada con un servidor seguro. Si este campo está en blanco, no existe tal restricción.
  • Nombre = Valor - Cookies se establecen y se recuperan en forma de pares clave-valor
Las cookies fueron diseñadas originalmente para la programación CGI. Los datos contenidos en una cookie se transmite automáticamente entre el navegador y el servidor web, por lo que los scripts CGI en el servidor pueden leer y escribir valores de las cookies que se almacenan en el cliente.
JavaScript también puede manipular las cookies utilizando la cookie de propiedad deldocumento objeto. JavaScript puede leer, crear, modificar y eliminar las cookies que se aplican a la página web actual.

El almacenamiento de las Cookies

La forma más sencilla de crear una cookie es asignar un valor de cadena para el objeto document.cookie, que se parece a esto.
document.cookie = "key1=value1;key2=value2;expires=date";
Aquí el expira atributo es opcional. Si proporciona este atributo con una fecha u hora válida, entonces la cookie expirará en una fecha o tiempo determinado ya partir de entonces, el valor de las cookies "no será accesible.
Nota - Los valores de cookies no pueden incluir un punto y coma, comas o espacios en blanco. Por esta razón, es posible que desee utilizar el JavaScript de escape () función para codificar el valor antes de guardarla en la cookie. Si usted hace esto, usted también tendrá que utilizar el correspondiente unescape () función cuando se lee el valor de la cookie.

Ejemplo

Pruebe lo siguiente. Establece un nombre de cliente en una cookie de entrada.
<html>
<head>

<script type="text/javascript">
<!--
function WriteCookie()
{
if( document.myform.customer.value == "" ){
alert
("Enter some value!");
return;
}
cookievalue
= escape(document.myform.customer.value) + ";";
document
.cookie="name=" + cookievalue;
document
.write ("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>

</head>

<body>

<form name="myform" action="">
Enter name:
<input type="text" name="customer"/>
<input type="button" value="Set Cookie" onclick="WriteCookie();"/>
</form>

</body>
</html>

Salida


Ahora el equipo tiene una cookie llamada nombre. Puede configurar múltiples galletas utilizando múltiples pares clave = valor separados por comas.

La lectura de las galletas

La lectura de una cookie es tan simple como escribir uno, debido a que el valor del objeto document.cookie es la cookie. Así que usted puede utilizar esta cadena cada vez que desee acceder a la cookie. La cadena document.cookie mantendrá una lista de nombre = valor pares separados por punto y coma, donde nombre es el nombre de una galleta y valor es el valor de la cadena.
Puede utilizar cadenas 'split () la función de romper una cadena en clave y los valores de la siguiente manera -

Ejemplo

Pruebe el siguiente ejemplo para obtener todos los cookies.
<html>
<head>

<script type="text/javascript">
<!--
function ReadCookie()
{
var allcookies = document.cookie;
document
.write ("All Cookies : " + allcookies );

// Get all the cookies pairs in an array
cookiearray
= allcookies.split(';');

// Now take key value pair out of this array
for(var i=0; i<cookiearray.length; i++){
name
= cookiearray[i].split('=')[0];
value
= cookiearray[i].split('=')[1];
document
.write ("Key is : " + name + " and Value is : " + value);
}
}
//-->
</script>

</head>
<body>

<form name="myform" action="">
<p> click the following button and see the result:</p>
<input type="button" value="Get Cookie" onclick="ReadCookie()"/>
</form>

</body>
</html>
Nota - Aquí longitud es un método de matriz de clase que devuelve la longitud de una matriz. Vamos a discutir matrices en un capítulo aparte. Por ese tiempo, intenta digerir.

Nota - Puede haber algunas otras cookies ya establecidos en su máquina. El código anterior mostrará todas las cookies creadas en su máquina.

Configuración de cookies Fecha de caducidad

Puede extender la vida de una galleta más allá de la sesión actual del navegador mediante el establecimiento de una fecha de caducidad y el ahorro de la fecha de caducidad en el cookie. Esto se puede hacer mediante el establecimiento de la "expira"atributo a una fecha y hora.

Ejemplo

Pruebe el siguiente ejemplo. Ilustra cómo extender la fecha de expiración de una cookie por 1 mes.
<html>
<head>

<script type="text/javascript">
<!--
function WriteCookie()
{
var now = new Date();
now
.setMonth( now.getMonth() + 1 );
cookievalue
= escape(document.myform.customer.value) + ";"

document
.cookie="name=" + cookievalue;
document
.cookie = "expires=" + now.toUTCString() + ";"
document
.write ("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>

</head>
<body>

<form name="formname" action="">
Enter name:
<input type="text" name="customer"/>
<input type="button" value="Set Cookie" onclick="WriteCookie()"/>
</form>

</body>
</html>

Salida


Eliminación de una galleta

A veces tendrá que eliminar una cookie para que los intentos posteriores para leer la nada retorno cookie. Para ello, sólo tiene que ajustar la fecha de caducidad a un tiempo en el pasado.

Ejemplo

Pruebe el siguiente ejemplo. Ilustra cómo eliminar una cookie mediante el establecimiento de la fecha de caducidad a un mes tras la fecha actual.
<html>
<head>

<script type="text/javascript">
<!--
function WriteCookie()
{
var now = new Date();
now
.setMonth( now.getMonth() - 1 );
cookievalue
= escape(document.myform.customer.value) + ";"

document
.cookie="name=" + cookievalue;
document
.cookie = "expires=" + now.toUTCString() + ";"
document
.write("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>

</head>
<body>

<form name="formname" action="">
Enter name:
<input type="text" name="customer"/>
<input type="button" value="Set Cookie" onclick="WriteCookie()"/>
</form>

</body>
</html>

Salida

No hay comentarios:

Publicar un comentario