E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Javascript

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  Javascript  /  Diverse (7)

Cookie-uri de sesiune

04.08.2008
Cookie-uri de sesiune

In acest tutorial, vom cauta reteta pentru cookie-uri („prajiturele”) cu durata de o sesiune, si modul in care iti pot ajuta scripturile sa retina informatie chiar si dupa ce pagina este reincarcata sau stearsa.

Total vizualizari: 5194 5194 afisari   |   Comentarii  0   |   Rating   |   (4 voturi)   |   Timp necesar: 20 min 20 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  Wsabstract.com  
Autor:  Wsabstract.com
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1
comenteaza printeaza

Cookie-uri de sesiune

Incalziti-va cuptoarele, oameni buni, caci a sosit vremea sa bagam JavaScript la copt pana cand creste in el memoria de lunga durata. In acest tutorial, vom cauta reteta pentru cookie-uri („prajiturele”) cu durata de o sesiune, si modul in care iti pot ajuta scripturile sa retina informatie chiar si dupa ce pagina este reincarcata sau stearsa.

Privire de ansamblu

Cookie-urile JavaScript reprezinta vehiculul care face posibila pastrarea  datelor de la o solicitare client la alta. Cand un site care  impune logarea isi aminteste numele tau de utilizator cu ocazia re-vizitarilor, de exemplu, nu multumi popularelor prajiturele Oreos, ci acestor impostori necomestibili.

Exista doua tipuri de cookie-uri JavaSript - permanente, si de sesiune. Primul tip isi stocheaza informatia intr-un fisier fizic in computerul clientului, numit "cookie.txt", cu datele stocate disponibile „permenent”. Cookie-urile de sesiune, de cealalta parte, stocheaza informatiile in memoria broweserului, si este disponibil pe durata sesiunii browserului. Cu alte cuvinte, datele stocate la interiorul unui cookie de sesiune este disponibil din momentul stocarii, pana cand browserul este inchis. Deplasarea de pe o pagina pe alta, in decursul acestui interval nu va duce la stergerea datelor.

Acest tutorial, dupa cum am mentionat, se canalizeaza pe cookie-urile de sesiune. Goleste-ti stomacul ca sa dam iama in ele!

Configurarea si extragerea unui cookie

O singura proprietate are insarcinarea de a realiza cookie-uri de sesiune in JavaScript:

document.cookie

Citeste/scrie proprietatea care stocheaza si prezerva datele in format delimitat prin semnul de punct-si-virgula (;)


function alertcook(){  
    document.cookie="JavaScript Kit"  
    alert(document.cookie)  
}

Ia document.cookie ca pe variabila familiara, insa care prezinta o personalitate sucita, incapatanata: Mai jos, ii stocam la interior un sir - observa ce iese:

document.cookie="JavaScript Kit"
alert(document.cookie)

Daca vezi 1 din urmatoarele 3 situatii, este cazul sa te alarmezi- 1) "JavaScript Kit", 2) Un sir continand valori multiple, dintre care una este "JavaScript Kit", sau 3) Un sir gol. Ia aminte ca daca nu vezi nimic, (sir gol), browserul tau nu are cookie-urile activate (sugestie: schimba asta!).
document.cookie reprezinta o  "utilitate publica", folosirea sa fiind comuna tuturor scripturilor de pe toate site-urile care o acceseaza. Datorita acestui lucru, proprietatea contine adesea mai multe valori decat ai stocat tu in ea, celelalte valori provenind din valorile care vin de pe alte site-uri. Cand ne situam in acest caz, fiecare valoare este separata printr-un semn se punct-si-virgula. Toate aceste valori sunt pastrate pana cand browserul este inchis.

Extragerea datelor din cookie

Ok, deci toata lumea poate sa ia o muscatura din document.cookie; cum poti sa iti localizezi bucata ta si sa o inhati? Aici rezida „grosul” muncii tale atunci cand lucrezi cu cookie-urile de sesiune- anume, in recuperarea a ceea ce s-a pus in ele.
Urmatorii doi pasi sunt implicati in majoritatea tehnicilor folosite pentru a extrage datele dintr-un cookie de sesiune:
1) Stocheaza-ti datele folosind un format pereche nume/valoare
2) Foloseste metode cu siruri, cum ar fi string.indexOf() si string.split() pentru a detecta/recupera aceste date
De exemplu:

//store data using name/value format
document.cookie="sitename=JavaScript Kit" 
 
//retrieve value from cookie
var beginindex, endindex, result
//set begin index to 1st letter of value ("W")
beginindex=document.cookie.indexOf("sitename")+9
endindex=beginindex
//while we haven't hit ";" and it's not end of cookie
while (document.cookie.charAt(endindex)!=";"&&
       endindex<=document.cookie.length)
       endindex++
//result contains "JavaScript Kit"
var result=document.cookie.substring(beginindex,endindex)

Ce nebunie...un motiv in plus ca sa citesti mai departe...

Fa-ti rost de o rutina cookie

Daca vine un timp cand este cazul sa iti calci orgoliul si sa folosesti biblioteci JavaScript gata alcatuite, acest lucru se intampla cand lucrezi cu cookie-uri. Te poti informa pe acest subiect in majoritatea cartilor de JavaScript, si vei gasi aceeasi recomandare.
Cu privire la subiectul in cauza - recuperarea datelor dintr-un cookie - o excelenta rutina pre-construita este urmatoarea:

Shelley Power te ajuta sa obtii o rutina cookie:

//Get cookie routine by Shelley Powers 
function get_cookie(Name) {
    var search = Name + "="
    var returnvalue = "";
    if (document.cookie.length > 0) {
        offset = document.cookie.indexOf(search)
        // if cookie exists
        if (offset != -1) { 
            offset += search.length
            // set index of beginning of value
            end = document.cookie.indexOf(";", offset);
            // set index of end of cookie value
            if (end == -1) end = document.cookie.length;
            returnvalue=unescape(document.cookie.substring(offset, end))
        }
    }
    return returnvalue;
}

Avand la dispozitie aceasta rutina, pentru a-ti extrage datele din document.cookie, pur si simplu introdu numele ansamblului de date ca parametru:

var result=get_cookie("sitename")

In cazul in care valoarea corespunzatoare nu exista, rutina va returna un sir gol.

p.s: Vezi aici pentru o biblioteca JavaScript de cookie-uri completa.
Acum, stim atat cum sa stocam cat si cum sa recuperam date dintrun cookie de sesiune. Dar la ce ne foloseste asta?

Exemplu
Cookie-urile de sesiune dau adesea cel mai bun randament „in culise”, ca parte a unei ecuatii mai mari. Interogarile dintre pagini sau ferestrele popup unice sunt un exemplu clasic al acestei situatii.

Sursa:

<script type="text/javascript">
//Get cookie routine by Shelley Powers 
function get_cookie(Name) {
    var search = Name + "="
    var returnvalue = "";
    if (document.cookie.length > 0) {
        offset = document.cookie.indexOf(search)
        // if cookie exists
        if (offset != -1) { 
            offset += search.length
            // set index of beginning of value
            end = document.cookie.indexOf(";", offset);
            // set index of end of cookie value
            if (end == -1) end = document.cookie.length;
            returnvalue=unescape(document.cookie.substring(offset, end))
        }
    }
    return returnvalue;
}
 
function setcolor(what){
    document.body.style.backgroundColor=what
    document.cookie="bgcolor="+what
}
 
if (get_cookie("bgcolor")!="")
    document.body.style.backgroundColor=get_cookie("bgcolor")
 
</script>

<form name="a1">
    <select name="a2" size="1">
        <option selected value="white">Select background color </option>
        <option value="#F0F0F0">Light gray</option>
        <option value="#80FFFF">Sky blue</option>
        <option value="#C6C6FF">Purple</option>
        <option value="white">White</option>
    </select>
    <input type="button" value="Go" onClick="setcolor(document.a1.a2.options
                                    [document.a1.a2.selectedIndex].value)">
</form>

Incearca sa incarci din nou sau sa pleci din pagina, iar apoi sa revii; culoarea selectata pentru fundal persista. Pentru a extinde aceasta persistenta la toate paginile de pe site-ul tau, ar trebui sa incluzi pur si simplu rutina get_cookie si cele doua randuri de cod care configureaza fundalul documentului pe aceste pagini. Si acest tutorial este inclus in nota de plata. Serviti cu placere cookie-urile JavaScript, insa, ca pentru orice altceva in viata, se recomanda moderatie!

Pagina:
1
comenteaza printeaza
Alte tutoriale Javascript:
Noteaza acest tutorial
Rating tutorial
 
(4 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
6360
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
6255
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
6160
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
6040
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
5820
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Word SWF Javascript JSON AJAX CSS Fireworks Excel Sony Vegas Illustrator XML PHP Verilog SEO Swift 3D XHTML Vista StyleSheet Bridge Powerpoint HTML Fotografie Photoshop Ruby on Rails MySQL Python Action Script Flash PSD Java Dreamweaver RoR Outlook COREL DRAW Gimp Lightroom
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software