Heim  >  Artikel  >  Web-Frontend  >  Was sind Cookies in Javascript? Und detaillierte Erklärung der Verwendung von Document.Cookie

Was sind Cookies in Javascript? Und detaillierte Erklärung der Verwendung von Document.Cookie

伊谢尔伦
伊谢尔伦Original
2017-05-30 14:25:351870Durchsuche

Konkret verwendet der Cookie-Mechanismus eine Lösung, die den Zustand auf der Clientseite beibehält, während der Sitzungsmechanismus eine Lösung verwendet, die den Zustand auf der Serverseite beibehält.

Gleichzeitig sehen wir auch, dass der Sitzungsmechanismus möglicherweise diese verwenden muss, da die Lösung zur Aufrechterhaltung des Status auf der Serverseite auch eine Identität auf der Clientseite speichern muss Cookie-Mechanismus, um den Zweck der Speicherung der Identität zu erreichen, es gibt jedoch tatsächlich andere Optionen.

Cookie setzen

Jedes Cookie ist ein Name/Wert-Paar. Sie können dem Dokument eine Zeichenfolge wie die folgende zuweisen. Cookie:

document.cookie="userId=828";

Wenn Sie mehrere Name/Wert-Paare gleichzeitig speichern möchten, können Sie Semikolons und Leerzeichen (; ) verwenden, um sie zu trennen, zum Beispiel:

document.cookie="userId=828; userName=hulk";

Im Namen des Cookies dürfen Semikolons (;), Kommas (,), Gleichheitszeichen (=) und Leerzeichen nicht in oder-Werten verwendet werden. 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. Beispiel:

document.cookie="str="+escape("I love ajax");

Äquivalent zu:

 document.cookie="str=I%20love%20ajax";

Wenn Sie die Escape()-Codierung verwenden, müssen Sie nach dem Herausnehmen des Werts unescape() zum Decodieren verwenden, um das Original zu erhalten Cookie-Wert. Dies wurde bereits zuvor eingeführt.

Obwohl document.cookie wie eine Eigenschaft aussieht, können ihr unterschiedliche Werte zugewiesen werden. Es unterscheidet sich jedoch von allgemeinen Attributen, wenn beispielsweise die folgenden beiden Anweisungen kontinuierlich ausgeführt werden:

document.cookie="userId=828";
document.cookie="userName=hulk";

Zu diesem Zeitpunkt verwaltet der Browser jeweils zwei Cookies . sind userId und userName, daher ähnelt das Zuweisen eines Werts zu document.cookie 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 ändern möchten eines Cookies einfach den Wert neu zuweisen, zum Beispiel:

document.cookie="userId=929";

Dadurch wird der Cookie-Wert namens userId auf 929 gesetzt.

Ermitteln Sie den Wert des Cookies

So ermitteln Sie den Wert des Cookies. 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. Diese Name/Wert-Paare enthalten den Domänennamen Alle Cookies unter. Beispiel:

  

zeigt den Ausgabe-Cookie-Wert an. Es ist ersichtlich, dass Sie nur alle Cookie-Werte auf einmal abrufen können, aber Sie können den Cookie-Namen nicht angeben, um den angegebenen Wert zu erhalten. Dies ist der problematischste Teil der Verarbeitung von Cookie-Werten. Benutzer müssen diese Zeichenfolge selbst analysieren, um den angegebenen Cookie-Wert zu erhalten. Um beispielsweise den Wert der Benutzer-ID zu erhalten, kann Folgendes erreicht werden:

 

Auf diese Weise kann der Wert eines einzelnen Cookies ermittelt werden Verwenden einer ähnlichen Methode, um den Wert eines oder mehrerer Cookies zu erhalten, sind immer noch die zugehörigen Operationen von Zeichenfolgen und Arrays.

Ablaufdatum für Cookies festlegen

Bisher handelt es sich bei allen Cookies um Single-Session-Cookies, d. h. um diese zu durchsuchen Cookies gehen verloren, nachdem der Server geschlossen wurde. Tatsächlich werden diese Cookies nur im Speicher gespeichert, ohne dass entsprechende Festplattendateien erstellt werden.

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; expires=GMT_String";

Wobei GMT_String eine im GMT-Format ausgedrückte Zeitzeichenfolge ist. Diese Anweisung setzt das userId-Cookie auf die durch GMT_String dargestellte Ablaufzeit Das Cookie verschwindet und ist nicht mehr zugänglich. Beispiel: Wenn Sie festlegen möchten, dass ein Cookie nach 10 Tagen abläuft, können Sie dies folgendermaßen tun:

 <script language="JavaScript" type="text/javascript">
  <!--
  //获取当前时间
  var date=new Date();
  var expireDays=10;
  //将date设置为10天以后的时间
  date.setTime(date.getTime()+expireDays*24*3600*1000);
  //将userId和userName两个cookie设置为10天后过期
  document.cookie="userId=828; userName=hulk; expire="+date.toGMTString();
  //-->
  </script>
 
  删除cookie
 
  为了删除一个cookie,可以将其过期时间设定为一个过去的时间,例如:
 
  <script language="JavaScript" type="text/javascript">
  <!--
  //获取当前时间
  var date=new Date();
  //将date设置为过去的时间
  date.setTime(date.getTime()-10000);
  //将userId这个cookie删除
  document.cookie="userId=828; expire="+date.toGMTString();
  //-->
  </script>

ps: Jquery Cookie-Betriebsparameter:

Erstellen Sie ein Sitzungscookie:

<script language="JavaScript" type="text/javascript">
<!--
//获取当前时间
var date=new Date();
var expireDays=10;
//将date设置为10天以后的时间
date.setTime(date.getTime()+expireDays*24*3600*1000);
//将userId和userName两个cookie设置为10天后过期
document.cookie="userId=828; userName=hulk; expire="+date.toGMTString();
//-->
</script>

删除cookie

为了删除一个cookie,可以将其过期时间设定为一个过去的时间,例如:

<script language="JavaScript" type="text/javascript">
<!--
//获取当前时间
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
//将userId这个cookie删除
document.cookie="userId=828; expire="+date.toGMTString();
//-->
</script>

Hinweis: Wenn die Cookie-Zeit nicht angegeben ist, bleibt das erstellte Cookie gültig, bis der Browser des Benutzers standardmäßig geschlossen wird, daher wird es aufgerufen ein Sitzungscookie.

Erstellen Sie ein dauerhaftes Cookie:

$.cookie(‘cookieName&#39;,&#39;cookieValue&#39;,{expires:7});

Hinweis: Wenn die Zeit angegeben wird, spricht man von einem dauerhaften Cookie und die Gültigkeitsdauer beträgt Tage.

Erstellen Sie ein dauerhaftes Cookie mit einem gültigen Pfad:

$.cookie(‘cookieName&#39;,&#39;cookieValue&#39;,{expires:7,path:&#39;/&#39;});

Hinweis: Wenn kein gültiger Pfad festgelegt ist, kann dieser standardmäßig nur auf der aktuellen Seite gelesen werden Das Cookie wird gesetzt. Der Pfad des Cookies wird verwendet, um das Verzeichnis der obersten Ebene festzulegen, das das Cookie lesen kann.

Erstellen Sie ein dauerhaftes Cookie mit einem gültigen Pfad und Domänennamen:

$.cookie(‘cookieName&#39;,&#39;cookieValue&#39;,{expires:7,path:&#39;/&#39;,domain: ‘chuhoo.com&#39;,secure: false,raw:false});

Hinweis: Domäne: Der Domänenname der Webseite, auf der das Cookie erstellt wird, ist sicher: Der Standardwert ist falsch. Wenn er wahr ist, muss das Cookie-Übertragungsprotokoll https sein. Der Standardwert ist falsch und wird beim Lesen und Schreiben automatisch kodiert und dekodiert (verwenden Sie encodeURIComponent zum Kodieren und dekodierenURIComponent zum Dekodieren). Wenn Sie diese Funktion deaktivieren möchten, setzen Sie sie bitte auf „true“.

Cookies erhalten:

$.cookie(‘cookieName&#39;);   //如果存在则返回cookieValue,否则返回null。

删除cookie:

$.cookie(‘cookieName&#39;,null);

注:如果想删除一个带有效路径的cookie,如下:$.cookie(‘cookieName',null,{path:'/'});

Das obige ist der detaillierte Inhalt vonWas sind Cookies in Javascript? Und detaillierte Erklärung der Verwendung von Document.Cookie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn