La mise à jour d'un cookie est en fait légèrement différente du remplacement d'un cookie, car la nouvelle valeur que nous souhaitons mettre dans le cookie dépend quelque peu du fait que le cookie existe déjà et, si oui, de ce qu'il contient. Cela signifie que nous devons lire le cookie existant avant de pouvoir en écrire un de remplacement.
Une chose à noter est que lorsque nous lisons un cookie, nous n'avons aucun moyen de savoir quand le cookie existant expire, ou si le cookie est limité à un dossier spécifique ou Disponible sur tout le domaine. Vous devez définir une nouvelle période de conservation lors de la modification des cookies, et vous devez suivre la portée du cookie dans la page afin que les mêmes options de domaine ou de chemin s'appliquent à chaque fois. Lorsque vous mettez à jour plutôt que remplacez un cookie, la seule chose que vous pouvez réellement lire est la valeur réelle des données stockées dans le cookie.
Dans cet exemple, nous utiliserons un cookie appelé « accesscount » pour compter le nombre de fois qu'un visiteur visite une page, où chaque visite n'est pas espacée de plus de 7 jours. Si l'intervalle entre deux visites dépasse 7 jours, le cookie expirera et la prochaine visite repartira de 0. Nous avons utilisé les fonctions allCookies() et writeCookie() de l'exemple précédent, donc pour effectuer réellement la mise à jour, nous n'avons besoin que des deux dernières lignes de code.
L'exemple de code est le suivant :
var cookie; 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]; } } return cr; }; writeCookie = function(cname, cvalue, days,opt) { var dt, expires, option; if (days) { dt = new Date(); dt.setTime(dt.getTime()+(days*24*60*60*1000)); expires = "; expires="+dt.toGMTString(); } else expires = ''; if (opt) { if ('/' = substr(opt,0,1)) option = "; path="+opt; else option = "; domain="+opt; } else option = ''; document.cookie = cname+"="+cvalue+expires+option; } cookie = allCookies(); if (cookie.accesscount != null) writeCookie('mycookie', cookie.accesscount + 1,7); else writeCookie('mycookie', 1,7);
Recommandations associées : "Tutoriel Javascript"
Cet article explique comment mettre à jour les cookies dans Introduction à JavaScript, j'espère que cela sera utile aux amis dans le besoin !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!