Cookie-Übersicht:
Wenn ein unveränderliches Framework zum Speichern von Einkaufsspaltendaten verwendet wird und sich die Produktanzeigeseite ständig ändert, kann dies zwar eine Funktion zur Simulation globaler Variablen erreichen, ist jedoch nicht streng. Wenn Sie beispielsweise mit der rechten Maustaste auf die Seite des Navigationsrahmens klicken und im Kontextmenü auf den Befehl [Aktualisieren] klicken, gehen alle JavaScript-Variablen verloren. Um strenge seitenübergreifende globale Variablen zu implementieren, ist diese Methode daher nicht möglich. Ein weiterer Mechanismus in JavaScript: Cookies können die Anforderungen echter globaler Variablen erfüllen.
Ein Cookie ist ein vom Browser bereitgestellter Mechanismus, der JavaScript das Cookie-Attribut des Dokumentobjekts bereitstellt. Es kann von JavaScript gesteuert werden und ist keine Eigenschaft von JavaScript selbst. Ein Cookie ist eine Datei, die auf der Festplatte des Benutzers gespeichert wird. Diese Datei entspricht normalerweise einem Domänennamen. Wenn der Browser erneut auf den Domänennamen zugreift, wird das Cookie verfügbar gemacht. Daher können Cookies mehrere Webseiten unter einem Domänennamen umfassen, sie können jedoch nicht über mehrere Domänennamen hinweg verwendet werden.
Verschiedene Browser implementieren Cookies unterschiedlich, ihre Eigenschaften sind jedoch gleich. Beispielsweise werden in Windows 2000 und Windows XP Cookie-Dateien im Ordner „Dokumente und EinstellungenBenutzernameCookie“ gespeichert. Das übliche Namensformat ist: [email protected] .
Der Cookie-Mechanismus speichert Informationen auf der Festplatte des Benutzers, sodass sie als globale Variable verwendet werden können. Dies ist einer seiner größten Vorteile. Es kann in den folgenden Situationen verwendet werden.
1. Benutzer-Anmeldestatus speichern. Beispielsweise wird die Benutzer-ID in einem Cookie gespeichert, sodass sich der Benutzer beim nächsten Besuch der Seite nicht erneut anmelden muss. Viele Foren und Communities bieten diese Funktion mittlerweile an. Cookies können auch eine Ablaufzeit festlegen. Wenn das Zeitlimit abläuft, verschwindet das Cookie automatisch. Daher kann das System Benutzer häufig dazu auffordern, angemeldet zu bleiben: gängige Optionen sind ein Monat, drei Monate, ein Jahr usw.
2. Verfolgen Sie das Benutzerverhalten. Beispielsweise kann eine Wettervorhersage-Website lokale Wetterbedingungen basierend auf dem vom Benutzer ausgewählten Gebiet anzeigen. Wenn Sie den Standort jedes Mal auswählen müssen, ist dies umständlich. Durch die Verwendung von Cookies kann sich das System den zuletzt besuchten Bereich merken und ihn automatisch anzeigen der letzte Benutzer Wetterbedingungen in Ihrer Nähe. Da alles im Hintergrund geschieht, wirkt eine solche Seite wie maßgeschneidert für einen bestimmten Benutzer und ist sehr benutzerfreundlich.
3. Passen Sie die Seite an. Wenn die Website die Funktion bietet, Skin oder Layout zu ändern, können Cookies verwendet werden, um die Optionen des Benutzers, wie z. B. Hintergrundfarbe, Auflösung usw., aufzuzeichnen. Beim nächsten Besuch des Benutzers kann der Schnittstellenstil des letzten Besuchs weiterhin gespeichert werden.
4. Erstellen Sie einen Warenkorb. Genau wie im vorherigen Beispiel werden Cookies verwendet, um die Artikel zu erfassen, die der Benutzer kaufen muss, und sie können beim Bezahlvorgang einheitlich übermittelt werden. Taobao verwendet beispielsweise Cookies, um die Produkte aufzuzeichnen, die Benutzer durchsucht haben, sodass sie jederzeit verglichen werden können.
Natürlich sind die oben genannten Anwendungen nur einige der Anwendungen, die Cookies ausführen können, und es gibt weitere Funktionen, die globale Variablen erfordern. Die Nachteile von Cookies liegen hauptsächlich in der Sicherheit und dem Schutz der Privatsphäre. Dazu gehören hauptsächlich die folgenden Kategorien:
1. Cookies können deaktiviert werden. Wenn ein Benutzer großen Wert auf den Schutz seiner Privatsphäre legt, wird er wahrscheinlich die Cookie-Funktion des Browsers deaktivieren.
2. Cookies hängen mit dem Browser zusammen. Dies bedeutet, dass die von verschiedenen Browsern gespeicherten Cookies auch dann nicht voneinander abgerufen werden können, wenn Sie dieselbe Seite besuchen.
3. Cookies können gelöscht werden. Da es sich bei jedem Cookie um eine Datei auf der Festplatte handelt, ist es wahrscheinlich, dass es vom Benutzer gelöscht wird.
4. Die Cookie-Sicherheit ist nicht hoch genug. Alle Cookies werden in Dateien in Form von Klartext aufgezeichnet. Wenn Sie also Benutzernamen, Passwort und andere Informationen speichern möchten, ist es am besten, diese im Voraus zu verschlüsseln.
Cookies setzen.
Jedes Cookie ist ein Name/Wert-Paar. Sie können
document.cookie
=“userId=828“;
durch Leerzeichen (;) getrennt, zum Beispiel:
document.cookie=“userId=828; userName=hulk“;
Semikolons (;), Kommas (,) und Gleichheitszeichen (=) können nicht in Cookie-Namen oder -Werten verwendet werden. und Räume. Dies lässt sich leicht im Namen des Cookies machen, der zu speichernde Wert ist jedoch undefiniert. Wie speichert man diese Werte? Die Methode besteht darin, zum Kodieren die Funktion escape() zu verwenden, die eine hexadezimale Darstellung einiger Sonderzeichen verwenden kann. Beispielsweise werden Leerzeichen als „20 %“ kodiert, die im Cookie-Wert gespeichert werden können, und diese Lösung kann verwendet werden Vermeiden Sie auch die Entstehung verstümmelter chinesischer Schriftzeichen. Zum Beispiel:
document.cookie="str="+escape("I love ajax");
Entspricht:
document.cookie="str=I%20love%20ajax";
Bei Verwendung der Escape()-Kodierung ist dies nach dem Abrufen erforderlich Der Wert wird mit unescape() dekodiert, um den ursprünglichen Cookie-Wert zu erhalten, der zuvor eingeführt wurde.
Obwohl document.cookie wie eine Eigenschaft aussieht und ihr unterschiedliche Werte zugewiesen werden können. Es unterscheidet sich jedoch von allgemeinen Attributen, indem beispielsweise die folgenden beiden Anweisungen kontinuierlich ausgeführt werden:
document.cookie
=“
userName=hulk“
;Dieses Mal verwaltet der Browser zwei Cookies, nämlich userId und userName. Das Zuweisen eines Werts zu document.cookie ähnelt also eher dem Ausführen einer Anweisung wie dieser:
document.addCookie("userId=828");
document.addCookie("userName= hulk" );
Tatsächlich setzt der Browser Cookies auf diese Weise. Wenn Sie den Wert eines Cookies ändern möchten, müssen Sie ihn nur neu zuweisen, zum Beispiel:
document.cookie="userId=929";
Dadurch wird der geändert Cookie mit dem Namen userId Der Wert ist auf 929 gesetzt.
Ermitteln Sie den Wert von Cookies.
Im Folgenden wird beschrieben, wie Sie den Wert von Cookies erhalten. Der Wert des Cookies kann direkt aus document.cookie abgerufen werden:
var strCookie=document.cookie;
Dadurch wird eine Zeichenfolge erhalten, die aus mehreren durch Semikolons getrennten Name/Wert-Paaren besteht. Alle Kekse.
In der tatsächlichen Entwicklung müssen Cookies häufig über einen längeren Zeitraum gespeichert werden, beispielsweise um den Anmeldestatus des Benutzers zu speichern. Dies kann mit den folgenden Optionen erreicht werden:
document.cookie=“userId=828;
Unter diesen ist GMT_String eine im GMT-Format ausgedrückte Zeitzeichenfolge. Diese Anweisung setzt das userId-Cookie auf die durch GMT_String dargestellte Ablaufzeit. Nach dieser Zeit verschwindet das Cookie und ist nicht mehr zugänglich.
Cookies löschen
Um ein Cookie zu löschen, können Sie dessen Ablaufzeit auf einen Zeitpunkt in der Vergangenheit festlegen.
Geben Sie den Pfad an, über den auf das Cookie zugegriffen werden kann. Wenn ein Cookie auf einer Seite erstellt wird, ist das Cookie standardmäßig auch für andere Seiten in dem Verzeichnis zugänglich, in dem sich die Seite befindet. Wenn sich unter diesem Verzeichnis Unterverzeichnisse befinden, können Sie auch in den Unterverzeichnissen darauf zugreifen. Beispielsweise kann auf ein in www.xxxx.com/html/a.html erstelltes Cookie von www.xxxx.com/html/b.html oder www.xxx.com/html/some/c.html zugegriffen werden, jedoch nicht Der Zugriff erfolgt über www.xxxx.com/d.html .
Um das Verzeichnis zu steuern, auf das Cookies zugreifen können, müssen Sie den Pfadparameter zum Festlegen von Cookies verwenden. Die Syntax lautet wie folgt:
document.cookie="name=value; path=cookieDir";
wobei cookieDir das Verzeichnis darstellt, in das Cookies zugreifen können zugegriffen werden. Beispiel:
document.cookie="userId=320; path=/shop";
bedeutet, dass das aktuelle Cookie nur im Shop-Verzeichnis verwendet werden kann.
Wenn Sie Cookies auf der gesamten Website verfügbar machen möchten, können Sie cookie_dir als Stammverzeichnis angeben, zum Beispiel:
document.cookie="userId=320; path=/";
Die Angabe des Hostnamens, der auf das Cookie zugreifen kann,
ähnelt dem Der Hostname bezieht sich auf dieselben verschiedenen Hosts unter einer Domain, zum Beispiel:
www.google.com und gmail.google.com sind zwei verschiedene Hostnamen. Standardmäßig kann auf auf einem Host erstellte Cookies nicht auf einem anderen Host zugegriffen werden, sie können jedoch über den Domänenparameter gesteuert werden. Das Syntaxformat lautet:
document.cookie="name=value; domain=cookieDomain" ";
Am Beispiel von Google Um einen hostübergreifenden Zugriff zu erreichen, können Sie schreiben:
document.cookie="name=value;domain=.google.com"
Auf diese Weise können alle Hosts unter google.com auf das Cookie zugreifen.
Umfassendes Beispiel: Aufbau einer allgemeinen Cookie-Verarbeitungsfunktion
Der Cookie-Verarbeitungsprozess ist relativ komplex und weist gewisse Ähnlichkeiten auf. Daher können mehrere Funktionen definiert werden, um allgemeine Vorgänge von Cookies abzuschließen und so eine Wiederverwendung des Codes zu erreichen. Häufig verwendete Cookie-Operationen und ihre Funktionsimplementierungen sind unten aufgeführt.
1. COOKIES setzen
Funktion SetCookie(Name,Wert,läuft ab,Pfad,Domäne,sicher)
{
var expDays = läuft ab*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()+expDays);
var expString = ((expires==null) ? „“ : (“;expires="+expDate.toGMTString()))
var pathString = ((path==null) ? "" : (";path="+path))
var domainString = ((domain==null) ? „“ : (“;domain="+domain))
var secureString = ((secure==true) ? „;secure“ : „“ )
document.cookie = name + „=" + escape(value) + expString + pathString + domainString + secureString;
}
2. Rufen Sie den Cookie-Wert des angegebenen Namens ab:
Funktion GetCookie(name)
{
var result = null;
var myCookie = document.cookie + ";";
var searchName = name + "=";
var startOfCookie = myCookie.indexOf(searchName);
var endOfCookie;
if (startOfCookie != -1)
{
startOfCookie += searchName.length;
endOfCookie = myCookie.indexOf(";",startOfCookie);
result = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
Ergebnis zurückgeben;
}
3. Löschen Sie das Cookie mit dem angegebenen Namen:
Funktion ClearCookie(name)
{
var ThreeDays=3*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()-ThreeDays);
document.cookie=name+“=;expires=“+expDate.toGMTString();
}