Maison > interface Web > js tutoriel > le corps du texte

Que sont les cookies en javascript ? Et une explication détaillée de l'utilisation de Document.Cookie

伊谢尔伦
Libérer: 2017-05-30 14:25:35
original
1877 Les gens l'ont consulté

Plus précisément, le mécanisme de cookie utilise une solution qui maintient l'état côté client, tandis que le mécanisme de session utilise une solution qui maintient l'état côté serveur.

Dans le même temps, nous voyons également que puisque la solution de maintien de l'état côté serveur doit également enregistrer une identité côté client, le mécanisme de session peut avoir besoin d'utiliser le mécanisme de cookie pour atteindre l’objectif de sauvegarder l’identité, mais il a en fait d’autres options.

Définir un cookie

Chaque cookie est une paire nom/valeur Vous pouvez attribuer une chaîne comme celle-ci au document. cookie :

document.cookie="userId=828";
Copier après la connexion

Si vous souhaitez stocker plusieurs paires nom/valeur en même temps, vous pouvez utiliser des points-virgules et des espaces (; ) pour les séparer, par exemple :

document.cookie="userId=828; userName=hulk";
Copier après la connexion

Dans le nom du cookie, les points-virgules (;), les virgules (,), les signes égal (=) et les espaces ne peuvent pas être utilisés dans les valeurs ou. Il est facile de faire cela au nom du cookie, mais la valeur à enregistrer n'est pas définie. Comment stocker ces valeurs ? La méthode consiste à utiliser la fonction escape() pour encoder, qui peut utiliser une représentation hexadécimale de certains symboles spéciaux. Par exemple, les espaces seront codés comme "20%", qui peuvent être stockés dans la valeur du cookie, et l'utilisation de cette solution peut être utilisée. évitez également l'émergence de caractères chinois tronqués. Par exemple :

document.cookie="str="+escape("I love ajax");
Copier après la connexion

Équivalent à :

 document.cookie="str=I%20love%20ajax";
Copier après la connexion

Lors de l'utilisation de l'encodage escape(), après avoir retiré la valeur, vous devez utiliser unescape() pour décoder afin d'obtenir l'original valeur du cookie. Ceci a déjà été introduit auparavant.

Bien que document.cookie ressemble à une propriété, différentes valeurs peuvent lui être attribuées. Mais c'est différent des attributs généraux. Changer son affectation ne signifie pas perdre la valeur d'origine. Par exemple, exécuter les deux instructions suivantes en continu :

document.cookie="userId=828";
document.cookie="userName=hulk";
Copier après la connexion

À ce moment, le navigateur conservera respectivement deux cookies. . sont userId et userName, donc attribuer une valeur à document.cookie revient plus à exécuter une instruction comme celle-ci :

document.addCookie("userId=828");
document.addCookie("userName=hulk");
Copier après la connexion

En fait, le navigateur définit les cookies de cette manière si vous souhaitez modifier la valeur. d'un cookie, réattribuez simplement la valeur, par exemple :

document.cookie="userId=929";
Copier après la connexion

Cela définira la valeur du cookie nommée userId sur 929.

Obtenez la valeur du cookie

Voici comment obtenir la valeur du cookie. La valeur du cookie peut être obtenue directement à partir de document.cookie :

var strCookie=document.cookie;
Copier après la connexion

Cela obtiendra une chaîne composée de plusieurs paires nom/valeur séparées par des points-virgules. Ces paires nom/valeur incluent le nom de domaine Tous les cookies. sous. Par exemple :

  
Copier après la connexion

affiche la valeur du cookie de sortie. On peut voir que vous ne pouvez obtenir que toutes les valeurs des cookies à la fois, mais vous ne pouvez pas spécifier le nom du cookie pour obtenir la valeur spécifiée. C'est la partie la plus gênante du traitement des valeurs des cookies. Les utilisateurs doivent analyser eux-mêmes cette chaîne pour obtenir la valeur de cookie spécifiée. Par exemple, pour obtenir la valeur de userId, cela peut être réalisé :

 
Copier après la connexion

De cette manière, la valeur d'un seul cookie peut être obtenue. en utilisant une méthode similaire. La principale technique pour obtenir la valeur d'un ou plusieurs cookies reste les opérations associées sur les chaînes et les tableaux.

Définir la date d'expiration des cookies

Jusqu'à présent, tous les cookies sont des cookies mono-session, c'est-à-dire la navigation dans ces les cookies seront perdus après la fermeture du serveur. En fait, ces cookies sont uniquement stockés en mémoire sans créer de fichiers correspondants sur le disque dur.

Dans le développement réel, les cookies doivent souvent être enregistrés pendant une longue période, comme par exemple l'enregistrement du statut de connexion de l'utilisateur. Ceci peut être réalisé en utilisant les options suivantes :

document.cookie="userId=828; expires=GMT_String";
Copier après la connexion

Où GMT_String est une chaîne de temps exprimée au format GMT. Cette instruction définit le cookie userId sur l'heure d'expiration représentée par GMT_String. le cookie disparaîtra et deviendra inaccessible. Par exemple : Si vous souhaitez qu'un cookie expire après 10 jours, vous pouvez le faire comme ceci :

 <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>
Copier après la connexion

ps : Paramètres de fonctionnement du cookie Jquery :

Créer un cookie de session :

<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>
Copier après la connexion

Remarque : Lorsque l'heure du cookie n'est pas précisée, le cookie créé sera valide jusqu'à la fermeture du navigateur de l'utilisateur par défaut, il est donc appelé un cookie de session.

Créez un cookie persistant :

$.cookie(‘cookieName&#39;,&#39;cookieValue&#39;,{expires:7});
Copier après la connexion

Remarque : Lorsque l'heure est spécifiée, on parle de cookie persistant et la durée de validité est de jours.

Créez un cookie persistant avec un chemin valide :

$.cookie(‘cookieName&#39;,&#39;cookieValue&#39;,{expires:7,path:&#39;/&#39;});
Copier après la connexion

Remarque : Si un chemin valide n'est pas défini, par défaut, il ne peut être lu que sur la page actuelle où le cookie est défini. Le cookie, le chemin du cookie est utilisé pour définir le répertoire de niveau supérieur qui peut lire le cookie.

Créez un cookie persistant avec un chemin et un nom de domaine valides :

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

Remarque : domaine : Le nom de domaine appartenant à la page Web où le cookie est créé sécurisé : La valeur par défaut est false, si Si c'est vrai, le protocole de transmission du cookie doit être https ; brut : la valeur par défaut est false, et il encodera et décodera automatiquement lors de la lecture et de l'écriture (utilisez encodeURIComponent pour encoder et decodeURIComponent pour décoder). désactiver cette fonction, veuillez la définir sur true.

Obtenir des cookies :

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

删除cookie:

$.cookie(‘cookieName&#39;,null);
Copier après la connexion

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

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!