Ultimele tutoriale de dezvoltare web
 

ASP Obiectul sesiunii


Un obiect sesiune stochează informații despre sau schimbați setările pentru o sesiune de utilizator.


Obiectul sesiunii

Când lucrați cu o aplicație de pe computer, deschideți-l, face unele modificări și apoi închideți-l. Acest lucru este mai mult ca o sesiune. Computerul știe cine ești. Se știe când deschideți aplicația și atunci când îl închideți. Cu toate acestea, pe internet, există o problemă: serverul web nu știe cine ești și ce faci, deoarece adresa HTTP nu menține starea.

ASP rezolvă această problemă prin crearea unui cookie unic pentru fiecare utilizator. Cookie-ul este trimis la calculatorul utilizatorului și conține informații care identifică utilizatorul. Această interfață se numește obiectul Session.

Obiectul Session stochează informații despre sau schimbați setările pentru o sesiune de utilizator.

Variabilele stocate într-o sesiune de informare despre obiect dețin un singur utilizator, și sunt disponibile pentru toate paginile într-o singură aplicație. Informații comună stocate în variabile de sesiune sunt nume, id-ul și preferințele. Serverul creează un nou obiect de sesiune pentru fiecare utilizator nou, și distruge obiectul sesiunii atunci când expiră sesiunea.


Când face o sesiune de pornire?

O sesiune începe atunci când:

  • Un nou utilizator cere un fișier ASP, iar fișierul Global.asa include o procedură Session_OnStart
  • O valoare este stocată într-o variabilă sesiune
  • Un utilizator solicită un fișier ASP, și fișierul Global.asa utilizează <object> tag - ul pentru a instantia un obiect cu domeniul sesiune

Când se termină o sesiune?

O sesiune se încheie în cazul în care un utilizator nu a solicitat sau reactualizat o pagină în cererea pentru o perioadă determinată. În mod implicit, acest lucru este de 20 de minute.

Dacă doriți să setați un interval de timeout , care este mai scurt sau mai lung decât cel implicit, utilizați Timeout proprietate.

Exemplul de mai jos stabilește un interval de pauză de 5 minute:

<%
Session.Timeout=5
%>

Utilizați Abandon metoda de a încheia o sesiune imediat:

<%
Session.Abandon
%>

Note: Problema principală cu sesiuni este atunci când acestea trebuie să se termine. Nu știm dacă ultima cerere a utilizatorului a fost ultimul unul sau nu. Deci , noi nu știm cât de mult ar trebui să păstreze sesiunea "alive" . Se așteaptă prea mult timp pentru o sesiune de mers în gol utilizează resursele de pe server, dar în cazul în care sesiunea este șters prea curând utilizatorul trebuie să înceapă peste tot din nou, deoarece serverul a șters toate informațiile. Găsirea intervalul timeout dreapta poate fi dificil!

Tip: stoca doar cantități mici de date în variabile de sesiune!


Stoca și prelua variabile de sesiune

Cel mai important lucru despre obiectul Session este că puteți stoca variabile în ea.

Exemplul de mai jos se va seta sesiune variabila username de "Donald Duck" age "50" username pentru a "Donald Duck" și variabila sesiune age la "50" :

<%
Session("username")="Donald Duck"
Session("age")=50
%>

În cazul în care valoarea este stocată într-o variabilă sesiune se poate ajunge de la orice pagină în aplicația ASP:

Welcome <%Response.Write(Session("username"))%>

Linia de mai sus se întoarce: "Welcome Donald Duck" .

De asemenea, puteți stoca preferințele utilizatorului în obiectul Session, și apoi accesați că preferința de a alege ce pagină pentru a reveni la utilizator.

Exemplul de mai jos specifica o versiune numai text a paginii, dacă utilizatorul are o rezoluție de ecran redusă:

<%If Session("screenres")="low" Then%>
  This is the text version of the page
<%Else%>
  This is the multimedia version of the page
<%End If%>

Eliminați variabile de sesiune

Colecția Cuprins conține toate variabilele de sesiune.

Este posibil de a elimina o variabilă sesiune cu metoda Eliminare.

Exemplul de mai jos elimină sesiunea variabilă "sale" în cazul în care valoarea variabilei de sesiune "age" este mai mic de 18:

<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>

Pentru a elimina toate variabilele într-o sesiune, utilizați metoda RemoveAll:

<%
Session.Contents.RemoveAll()
%>

Buclă prin colectarea Cuprins

Colecția Cuprins conține toate variabilele de sesiune. Puteți buclă prin colecția de Conținut, pentru a vedea ce este stocat în ea:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
  Response.Write(i & "<br>")
Next
%>

Rezultat:

username
age

Dacă nu cunoașteți numărul de elemente din colecția Conținut, puteți utiliza proprietatea Count:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br>")
Next
%>

Rezultat:

Session variables: 2
Donald Duck
50

Buclă prin colectarea StaticObjects

Puteți buclă prin colecția StaticObjects, pentru a vedea valorile tuturor obiectelor stocate în obiectul Session:

<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br>")
Next
%>