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";
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";
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");
Équivalent à :
document.cookie="str=I%20love%20ajax";
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";
À 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");
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";
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;
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 :
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é :
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";
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>
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>
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','cookieValue',{expires:7});
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','cookieValue',{expires:7,path:'/'});
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','cookieValue',{expires:7,path:'/',domain: ‘chuhoo.com',secure: false,raw:false});
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'); //如果存在则返回cookieValue,否则返回null。
删除cookie:
$.cookie(‘cookieName',null);
注:如果想删除一个带有效路径的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!