Sådan bruges cookies i JavaScript

Cookies butik ansøgning information på brugerens drev. Når en bruger besøger et websted, kan JavaScript program bruger en cookie til at gemme oplysninger til fremtidig brug. Nogle cookies er ganske enkel og gemme brugerens navn eller datoen for brugerens sidste besøg. Andre cookies er ganske kompliceret og kunne gemme oplysninger om ansøgning tilstand.

En cookie kan sætte en bruger tilbage til hvor brugeren var sidste gang programmet var aktiv. Uanset hvor enkel eller kompliceret en cookie er, de grundlæggende teknikker til at arbejde med cookies er de samme.

Sådan indstilles en cookie med JavaScript

Det betaler sig at skabe funktioner, der vil sætte og få cookies, så du ikke behøver at skrive den samme kode flere gange. Følgende eksempel accepterer tre indgange: navnet på den cookie, værdien af ​​cookien, og det antal dage, indtil den udløber:

funktion setcookie (navn, værdi, udløb)
{
// Opret en dato variabel, der indeholder
// Udløbsdatoen.
var ExpDate = new Date ();
hvis (Udløb! = null)
ExpDate.setDate (ExpDate.getDate () +
Udløb);

// Encode dataene til opbevaring.
Var CookieValue = escape (værdi) +
"Udløber =" + ExpDate.toUTCString ();

// Gem cookie.
document.cookie = Name + "=" + CookieValue;
}

Normalt ville du tilføje kontrol af datainput til en funktion, som du planlægger at bruge i en række forskellige situationer. Dette eksempel efterlader dem ud for overskuelighedens skyld.

Koden begynder ved beregning udløbsdatoen. Det begynder ved at skabe en ny dato objekt, ExpDate, og tilføje det antal dage indtil cookien udløber til det. Altid tænke på udløbsdatoen som mere af et forslag end en absolut. En bruger kan konfigurere browseren til at fjerne cookies, hver gang browseren lukkes, eller brugeren kan fjerne cookies manuelt til enhver tid.

For at gemme en cookie værdi, skal du slippe det - det er, skal du fjerne alle blanke tegn tegn fra det. Eksemplet fjerner mellemrum og derefter tilføjer udløbsdatoen. Antag, at du ønsker at gemme en cookie, brugernavn, med en værdi på John.

Hvad du ender med, er en streng, der indeholder brugernavn og udløbsdato: John; udløber = Sun, 8 dec 2013 21:43:52 GMT. Cookien er faktisk gemt i document.cookie ejendom som Brugernavn = John; udløber = Sun, 8 dec 2013 21:43:52 GMT.

Sådan får du en cookie

Hvis man antager, at brugeren har gemt cookies din ansøgning skabt, er du nødt til at hente dem, før du kan gøre brug af de oplysninger, de indeholder. Værdierne er gemt på disken som navn / værdi par. Dataene undslap, hvilket gør det let at opbevare, men umuligt at læse. Følgende kode viser, hvordan du hente alle de cookies, søge efter en bestemt cookie, og derefter foretage de data læses:

funktion GetCookie (navn)
{
// Få alle cookies og split
// Dem i individuelle cookies.
Var Cookies = document.cookie.split (";");

// Proces hver cookie på skift.
for (var i = 0; i <Cookies.length; i ++)
{
// Få navnet på den cookie.
Var CNAME = Cookies [i] .substr (0,
Cookies [i] .indexOf ("="));

// Opnå værdien af ​​cookie.
Var CValue = Cookies [i] .substr (
Cookies [i] .indexOf ("=") + 1);

// Udskift undslap tegn.
CNAME = CName.replace (/ ^ \ s + | \ s + $ / g, "");

// Hvis navnet på den cookie matcher
// Navn, der blev vedtaget af den, der ringer, afkast
// Den tilhørende cookie.
hvis (navn == CNAME)
{
tilbage unescape (CValue);
}
}

// Returner en null-værdi, når cookien ikke er fundet.
tilbage null;
}

Cookies gemmes som én lang streng, hvor hver cookie er adskilt fra det næste af et semikolon (;). Eksemplet bruger split () til at vende denne streng i et array af individuelle cookies. På dette tidspunkt, kan koden behandle cookies en ad gangen.

Hver cookie gemmes som et navn / værdi par. Koden starter ved at hente navn, og så værdien ved hjælp strenghåndtering funktioner. En anden måde at udføre den samme opgave er at bruge split () funktionen igen med ligemænd (=) som separator. Du vil så finde navnet på den første arrayelement og værdien i det andet arrayelement.

Du har nu en flygtet navn og værdi. Koden fjerner escape-tegn i en cookie navn, så det kan udføre en direkte sammenligning med det navn, der blev vedtaget til funktionen. Når navnene passer, koden returnerer værdien til den, der ringer.

Sådan kontrolleres en cookie med JavaScript

Den GetCookie () og setcookie () funktioner gør det nemt at arbejde med cookies ved hjælp af JavaScript. Dette eksempel sporer brugerens navn. Når systemet ikke har brugerens navn er gemt, programmet beder om det, og gemmer den til senere brug som vist i følgende eksempel:

funktion CheckName ()
{
// Anskaf brugerens navn.
var UserName = GetCookie ("Username");

// Tjek om et brugernavn.
hvis ((brugernavn == null) || (brugernavn == ""))
{
// Få et brugernavn fra brugeren.
Brugernavn = prompt ("Indtast dit navn:");

// Sæt en cookie for det brugernavn, vil
// Udløber i et år.
Setcookie ("Brugernavn", brugernavn, 365);
}
andet
{
// Ellers udvide meddelelsen.
Brugernavn = "Tilbage" + Brugernavn;
}

// Vis brugerens navn på skærmen.
var SetName = document.getElementById ("Navn");
SetName.innerHTML = Brugernavn;
}

Funktionen begynder ved at forsøge at få den lagrede cookie. Når der er ingen cookie for at få, returnerer funktionen null. En bruger kan også vælge blot at trykke på Enter, når bedt om et navn. Dette ville resultere i en blindværdi. Koden kontrollerer også for en tom og beder brugeren om at indtaste et navn igen.

Når der er et navn er gemt på drevet, koden modificerer meddelelse på skærmen for at afspejle dette faktum. Så hvis det er en ny bruger, der står i meddelelsen Velkommen navn, men hvis det er en tilbagevendende bruger, det siger Velkommen tilbage Name. Pointen er, at du har en simpel metode til påvisning af afkast versus nye poster.


© 2020 Zajacperrone.com | Contact us: webmaster# zajacperrone.com