J'aimerais créer un cookie qui n'expire jamais. Serait-ce même possible?
document.cookie = "name=value; expires=date; path=path;domain=domain; secure";
Je ne veux pas que la date soit vraiment grande, je me demande simplement s'il existe une valeur pour le paramètre expires dans le cookie qui indique qu'il n'expire jamais.
Merci.
Nan. Ne peut pas être fait. La «façon» de le faire consiste simplement à faire en sorte que la date d'expiration soit proche de 2030.
Il n'y a pas de syntaxe pour ce que vous voulez. Si le paramètre n'est pas expiré, le cookie expirera à la fin de la session. La seule option est de choisir une valeur arbitrairement élevée. Sachez que certains navigateurs ont des problèmes avec les dates antérieures à 2038 (lorsque le temps Epoch dépasse un int de 32 bits).
Vous pouvez faire comme l'exemple sur Mozilla docs :
document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT";
P.S
Bien sûr, il y aura un problème si l'humanité utilise toujours votre code la première minute de l'an 10000 :)
Tous les cookies expirent conformément au cookie spécification , la valeur maximale que vous pouvez définir est
2^31 - 1 = 2147483647 = 2038-01-19 04:14:07
Donc, la durée de vie maximale des cookies est
$.cookie('subscripted_24', true, { expires: 2147483647 });
Vous pouvez éventuellement définir un cookie à une date d'expiration d'un mois ou autre, puis réaffecter le cookie chaque fois que l'utilisateur visite le site à nouveau.
Si vous ne définissez pas de date d'expiration, le cookie expirera à la fin de la session de l'utilisateur. Je recommande d’utiliser la date juste avant l’époque unix qui étendra passé un entier de 32 bits. Pour mettre cela dans le cookie, vous utiliseriez document.cookie = "randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC;
, en supposant que randomCookie
est le cookie que vous définissez et true
sa valeur respective.
VOUS NE POUVEZ PAS. Il n'y a pas de code exact à utiliser pour définir un cookie permanent, mais une vieille astuce suffira, comme current time + 10 years
.
Notez simplement que toute date au-delà de January 2038
vous condamnera car les cookies (32-bit int) seront immédiatement supprimés. Souhaite un miracle que cela soit réglé dans un proche avenir. Pour 64-bit int, les années autour de 2110
seront sans danger. Au fil du temps, les logiciels et le matériel vont changer et risquent de ne jamais s'adapter aux versions les plus anciennes (ce que nous avons maintenant). Préparez donc le maintenant pour le futur.
Si vous souhaitez lire les données uniquement à partir du côté client, vous pouvez utiliser le stockage local . Il n'est supprimé que lorsque le cache du navigateur est effacé.
Vous pouvez créer un cookie sans fin en le fixant à la date de votre choix, plus un de plus que l'année en cours, comme ceci:
var d = new Date();
document.cookie = "username=John Doe; expires=Thu, 18 Dec " + (d.getFullYear() + 1) + " 12:00:00 UTC";