Actualización de cookies en JavaScript

En realidad, actualizar una cookie es un poco diferente de simplemente reemplazar una cookie, ya que el nuevo valor que queremos colocar en la cookie depende de alguna manera de si la cookie ya existe y, de ser así, de lo que contiene. Esto significa que necesitamos leer la cookie existente antes de poder escribir un reemplazo para ella..

Una cosa a tener en cuenta es que cuando leemos una cookie no tenemos forma de saber cuándo vencerá la cookie existente o si la cookie está restringida a una carpeta específica o está disponible en todo el dominio. Debes establecer un nuevo período de retención cuando reemplazas la cookie y debes realizar un seguimiento del alcance que deseas que tenga la cookie dentro de tus páginas para aplicar el mismo dominio o opción de ruta cada vez. Lo único que puede leer al actualizar en lugar de simplemente reemplazar una cookie es el valor real de los datos almacenados en la cookie..

En este ejemplo, vamos a utilizar una cookie llamada 'cuenta de acceso' para contar la cantidad de veces que nuestro visitante ha accedido a nuestra página donde no han transcurrido más de siete días entre visitas. Si transcurren más de siete días entre las visitas, la cookie caducará y la próxima visita comenzará a contar desde cero. Estamos usando las funciones allCookies () y writeCookie () de los ejemplos anteriores, por lo que el único fragmento de código nuevo que necesitamos para realizar la actualización está en las dos últimas líneas..

galleta var;
allCookies = function ()
var cr, ck, cv;
cr = []; if (document.cookie! = ")
ck = document.cookie.split (';');
for (var i = ck.length - 1; i> = 0; i--)
cv = ck.split ('=');
cr [ck [0]] = ck [1];


volver cr;
;
writeCookie = function (cname, cvalue, days, opt)
var dt, caduca, opción;
si (días)
dt = nueva fecha ();
dt.setTime (dt.getTime () + (días * 24 * 60 * 60 * 1000));
expires = "; expires =" + dt.toGMTString ();
else caduca = ";
si (optar)
if ('/' = substr (opt, 0,1)) opción = "; ruta =" + opt;
otra opción = "; dominio =" + opt;
otra opción = ";
document.cookie = cname + "=" + cvalue + caduca + opción;

cookie = allCookies ();
if (cookie.accesscount! = null) writeCookie ('mycookie', cookie.accesscount + 1,7);
de lo contrario, escriba Cookie ('mycookie', 1,7);