Présentation des cookies
Si un cadre immuable est utilisé pour stocker les données de la colonne d'achat et que la page d'affichage du produit change constamment, bien que cela puisse remplir une fonction de simulation de variables globales, ce n'est pas rigoureux. Par exemple, si vous cliquez avec le bouton droit sur la page du cadre de navigation et cliquez sur la commande [Actualiser] dans le menu contextuel, toutes les variables JavaScript seront perdues. Par conséquent, pour implémenter des variables globales inter-pages strictes, cette méthode n'est pas réalisable. Un autre mécanisme en JavaScript : les cookies peuvent répondre aux exigences des vraies variables globales.
Un cookie est un mécanisme fourni par le navigateur qui fournit l'attribut cookie de l'objet document à JavaScript. Il peut être contrôlé par JavaScript et n'est pas une propriété de JavaScript lui-même. Un cookie est un fichier stocké sur le disque dur de l'utilisateur. Ce fichier correspond généralement à un nom de domaine. Lorsque le navigateur accède à nouveau au nom de domaine, le cookie est rendu disponible. Par conséquent, les cookies peuvent s'étendre sur plusieurs pages Web sous un seul nom de domaine, mais ne peuvent pas être utilisés sur plusieurs noms de domaine.
Différents navigateurs implémentent les cookies différemment, mais leurs propriétés sont les mêmes. Par exemple, sous Windows 2000 et Windows XP, les fichiers cookies sont stockés dans le dossier documents and settingsuserNamecookie. Le format de dénomination habituel est : [email protected] .
Le mécanisme des cookies stocke les informations sur le disque dur de l'utilisateur, afin qu'elles puissent être utilisées comme variable globale. C'est l'un de ses plus grands avantages. Il peut être utilisé dans les situations suivantes.
1. Enregistrez le statut de connexion de l'utilisateur. Par exemple, l'identifiant de l'utilisateur est stocké dans un cookie afin que l'utilisateur n'ait pas besoin de se reconnecter lors de sa prochaine visite sur la page. De nombreux forums et communautés proposent désormais cette fonction. Les cookies peuvent également définir un délai d'expiration. À l'expiration du délai, le cookie disparaîtra automatiquement. Par conséquent, le système peut souvent inviter les utilisateurs à rester connectés : les options courantes sont un mois, trois mois, un an, etc.
2. Suivez le comportement des utilisateurs. Par exemple, un site Web de prévisions météorologiques peut afficher les conditions météorologiques locales en fonction de la zone sélectionnée par l'utilisateur. Si vous devez sélectionner l'emplacement à chaque fois, cela sera fastidieux. Lorsque des cookies sont utilisés, cela deviendra plus convivial. Le système pourra mémoriser la zone visitée la dernière fois, lors de la prochaine ouverture de la page, elle s'affichera automatiquement. le dernier utilisateur. Conditions météorologiques dans votre région. Parce que tout se fait en arrière-plan, une telle page est comme si elle était personnalisée pour un certain utilisateur et est très pratique à utiliser.
3. Personnalisez la page. Si le site Web propose la fonction de changement d'apparence ou de mise en page, les cookies peuvent être utilisés pour enregistrer les options de l'utilisateur, telles que la couleur d'arrière-plan, la résolution, etc. Lors de la prochaine visite de l'utilisateur, le style d'interface de la dernière visite peut toujours être enregistré.
4. Créez un panier. Tout comme dans l'exemple précédent, les cookies sont utilisés pour enregistrer les articles que l'utilisateur doit acheter, et ils peuvent être soumis de manière uniforme lors du paiement. Par exemple, Taobao utilise des cookies pour enregistrer les produits consultés par les utilisateurs afin de pouvoir les comparer à tout moment.
Bien entendu, les applications ci-dessus ne sont que quelques-unes des applications que les cookies peuvent compléter, et il existe d'autres fonctions qui nécessitent des variables globales. Les inconvénients des cookies concernent principalement la sécurité et la protection de la vie privée. Incluent principalement les catégories suivantes :
1. Les cookies peuvent être désactivés. Lorsqu'un utilisateur accorde une grande attention à la protection de sa vie privée, il est susceptible de désactiver la fonction cookie du navigateur.
2. Les cookies sont liés au navigateur ; Cela signifie que même si vous visitez la même page, les cookies enregistrés par différents navigateurs ne sont pas accessibles les uns aux autres ;
3. Les cookies peuvent être supprimés ; Chaque cookie étant un fichier sur le disque dur, il est susceptible d'être supprimé par l'utilisateur.
4. La sécurité des cookies n'est pas suffisamment élevée. Tous les cookies sont enregistrés dans des fichiers sous forme de texte brut, donc si vous souhaitez enregistrer le nom d'utilisateur, le mot de passe et d'autres informations, il est préférable de les crypter au préalable.
Définir des cookies.
Chaque cookie est une paire nom/valeur. Vous pouvez attribuer la chaîne suivante à document.cookie :
document.cookie="userId=828" ;
Si vous souhaitez stocker plusieurs paires nom/valeur à la fois, vous pouvez utiliser. divisé séparé par des espaces (;), par exemple :
document.cookie=”userId=828; userName=hulk”;
Les points-virgules (;), les virgules (,) et les signes égal (=) ne peuvent pas être utilisés dans les noms ou les valeurs des cookies. et des espaces. 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(), il est requis après la récupération. la valeur Utilisez unescape() pour décoder afin d'obtenir la valeur originale du cookie, qui a été introduite précédemment.
Bien que document.cookie ressemble à une propriété et puisse se voir attribuer différentes valeurs. 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″;
cette fois, le navigateur conservera deux cookies, à savoir userId et userName, donc attribuer une valeur à document.cookie revient plus à exécuter une instruction comme celle-ci :
document.addCookie
("userId=828");
hulk" );
En fait, le navigateur définit les cookies de cette manière. Si vous souhaitez modifier la valeur d'un cookie, il vous suffit de le réattribuer, par exemple :
document.cookie="userId=929";
Cela modifiera la cookie nommé userId La valeur est définie sur 929.
Obtenir la valeur du cookie
Ce qui suit décrit 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 les noms sous le nom de domaine. Tous les cookies.
Dans le développement actuel, les cookies doivent souvent être conservés pendant une longue période, par exemple pour sauvegarder le statut de connexion de l'utilisateur. Ceci peut être réalisé en utilisant les options suivantes :
document.cookie=”userId=828 expires=GMT_String”;
Parmi eux, GMT_String est une chaîne temporelle exprimée au format GMT. Cette instruction définit le cookie userId sur le délai d'expiration représenté par GMT_String. Passé ce délai, le cookie disparaîtra et deviendra inaccessible.
Suppression des cookies
Pour supprimer un cookie, vous pouvez définir son délai d'expiration sur une heure antérieure.
Précisez le chemin d'accès au cookie. Par défaut, si un cookie est créé sur une page, le cookie est également accessible aux autres pages du répertoire où se trouve la page. S'il existe des sous-répertoires sous ce répertoire, vous pouvez également y accéder dans les sous-répertoires. Par exemple, un cookie créé dans www.xxxx.com/html/a.html est accessible via www.xxxx.com/html/b.html ou www.xxx.com/html/some/c.html , mais ne peut pas être accessible via www.xxxx.com/d.html .
Afin de contrôler le répertoire auquel les cookies peuvent accéder, vous devez utiliser le paramètre path pour définir les cookies. La syntaxe est la suivante :
document.cookie="name=value; path=cookieDir"
où cookieDir représente le répertoire dans lequel les cookies peuvent accéder. être accessible. Par exemple :
document.cookie="userId=320; path=/shop";
signifie que le cookie actuel ne peut être utilisé que dans le répertoire de la boutique.
Si vous souhaitez rendre les cookies disponibles sur l'ensemble du site Web, vous pouvez spécifier cookie_dir comme répertoire racine, par exemple :
document.cookie="userId=320; path=/";
Spécifier le nom d'hôte qui peut accéder au cookieest similaire au nom
d'hôte qui peut accéder au cookie.
chemin. Le nom d'hôte fait référence aux mêmes différents hôtes sous un même domaine, par exemple :
www.google.com et gmail.google.com sont deux noms d'hôte différents. Par défaut, les cookies créés sur un hôte ne sont pas accessibles sur un autre hôte, mais ils peuvent être contrôlés via le paramètre de domaine. Le format de syntaxe est :
document.cookie="name=value; domain=cookieDomain" " ;
En prenant Google comme exemple. , pour obtenir un accès entre hôtes, vous pouvez écrire :
document.cookie="name=value;domain=.google.com";
De cette manière, tous les hôtes sous google.com peuvent accéder au cookie.
Exemple complet : construction d'une fonction générale de gestion des cookies
Le processus de traitement des cookies est relativement complexe et présente certaines similitudes. Par conséquent, plusieurs fonctions peuvent être définies pour compléter les opérations courantes des cookies, permettant ainsi la réutilisation du code. Les opérations de cookies couramment utilisées et leurs implémentations de fonctions sont répertoriées ci-dessous.
1. Définir des COOKIES
fonction SetCookie (nom, valeur, expire, chemin, domaine, sécurisé)
{
var expDays = expire*24*60*60*1000 ;
var expDate = nouvelle 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 = nom + « = » + escape(value) + expString + pathString + domainString + secureString ;
}
2. Obtenez la valeur du cookie du nom spécifié :
fonction GetCookie(nom)
{
var résultat = nul ;
var monCookie = document.cookie + ";";
var searchName = nom + "=";
var startOfCookie = myCookie.indexOf(searchName);
var endOfCookie;
si (startOfCookie != -1)
{
startOfCookie += searchName.length;
endOfCookie = monCookie.indexOf(";",startOfCookie);
result = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
renvoyer le résultat ;
}
3. Supprimez le cookie portant le nom spécifié :
fonction ClearCookie(nom)
{
var Trois jours = 3*24*60*60*1000 ;
var expDate = nouvelle Date();
expDate.setTime(expDate.getTime()-ThreeDays);
document.cookie=name+”=;expires=”+expDate.toGMTString();
}