Ich möchte einen Cookie einrichten, der niemals abläuft. Wäre das überhaupt möglich?
document.cookie = "name=value; expires=date; path=path;domain=domain; secure";
Ich möchte das Datum nicht wirklich groß machen. Ich frage mich nur, ob es einen Wert für den Parameter expires auf dem Cookie gibt, der besagt, dass es niemals ablaufen soll.
Vielen Dank.
javascript
cookies
Jose Vega
quelle
quelle
Antworten:
Nee. Kann nicht gemacht werden. Die Art und Weise, dies zu tun, besteht darin, das Ablaufdatum auf 2030 festzulegen.
quelle
Es gibt keine Syntax für das, was Sie wollen. Wenn die Einstellung nicht abläuft, läuft das Cookie am Ende der Sitzung ab. Die einzige Möglichkeit besteht darin, einen beliebig großen Wert auszuwählen. Beachten Sie, dass einige Browser Probleme mit Daten nach 2038 haben (wenn die Unix-Epochenzeit einen 32-Bit-Int überschreitet).
quelle
Expires
oderMax-Age
Anweisung erstellt wurde, ist ein Sitzungscookie: Es wird gelöscht, wenn der Client heruntergefahren wird. Webbrowser verwenden jedoch möglicherweise die Sitzungswiederherstellung , wodurch die meisten Sitzungscookies dauerhaft sind, als ob der Browser nie geschlossen worden wäre. ( Quelle: MDN )Sie können als Beispiel für Mozilla-Dokumente Folgendes tun :
PS
Natürlich wird es ein Problem geben, wenn die Menschheit Ihren Code in der ersten Minute des Jahres 10000 noch verwendet :)
quelle
Alle Cookies verfallen gemäß der Cookie- Spezifikation . Der maximale Wert, den Sie festlegen können, ist
Die maximale Lebensdauer von Cookies beträgt also
quelle
document.cookie = 'subscripted_24=true; expires=' + new Date(2147483647 * 1000).toUTCString();
Sie können möglicherweise ein Cookie auf ein Ablaufdatum von einem Monat oder so setzen und das Cookie dann jedes Mal neu zuweisen, wenn der Benutzer die Website erneut besucht
quelle
Wenn Sie kein Ablaufdatum festlegen, läuft das Cookie am Ende der Sitzung des Benutzers ab. Ich empfehle, das Datum unmittelbar vor der Verlängerung der Unix-Epoche um eine 32-Bit-Ganzzahl zu verlängern. Um dies in das Cookie einzufügen, das Sie verwenden würden
document.cookie = "randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC;
, vorausgesetzt, esrandomCookie
handelt sich um das von Ihnen gesetzte Cookie undtrue
den entsprechenden Wert.quelle
SIE KÖNNEN NUR NICHT . Es gibt keinen genauen Code zum Setzen eines Cookies für immer, aber ein alter Trick reicht aus
current time + 10 years
.Nur ein Hinweis, dass alle darüber hinausgehenden Daten
January 2038
Sie für die Cookies ( 32-Bit-Int ) zum Scheitern verurteilt haben, wird sofort gelöscht. Wünschen Sie sich ein Wunder, dass dies in naher Zukunft behoben wird. Für 64-Bit-Int sind Jahre2110
sicher. Mit der Zeit werden sich Software und Hardware ändern und sich möglicherweise nie an ältere anpassen (die Dinge, die wir jetzt haben). Bereiten Sie das Jetzt auf die Zukunft vor .quelle
Wenn Sie die Daten nur von der Clientseite lesen möchten, können Sie den lokalen Speicher verwenden. Es wird nur gelöscht, wenn der Cache des Browsers geleert wird.
quelle
Sie können ein Cookie niemals beenden, indem Sie es auf ein beliebiges Datum plus eines mehr als das aktuelle Jahr wie folgt einstellen:
quelle