Sesi ASP



Objek Sesi digunakan untuk menyimpan maklumat tentang sesi pengguna (sesi), atau untuk menukar tetapan sesi pengguna (sesi).


Objek Sesi

Apabila anda mengusahakan aplikasi pada komputer anda, anda membukanya, membuat perubahan dan kemudian menutupnya. Ia banyak seperti perbualan. Komputer tahu siapa anda. Ia tahu apabila anda membuka dan menutup apl. Walau bagaimanapun, di Internet masalah timbul: kerana alamat HTTP tidak dapat mengekalkan keadaan, pelayan web tidak tahu siapa anda dan apa yang anda lakukan.

ASP menyelesaikan masalah ini dengan mencipta kuki unik untuk setiap pengguna. Kuki dipindahkan ke komputer pengguna dan mengandungi maklumat yang mengenal pasti pengguna. Antara muka ini dipanggil objek Sesi.

Objek Sesi digunakan untuk menyimpan maklumat tentang sesi pengguna (sesi), atau untuk menukar tetapan sesi pengguna (sesi).

Pembolehubah yang disimpan dalam objek Sesi menyimpan maklumat tentang pengguna tunggal dan tersedia untuk semua halaman dalam aplikasi. Maklumat biasa yang disimpan dalam pembolehubah sesi biasanya nama, id dan parameter. Pelayan akan mencipta Sesi baharu untuk setiap pengguna baharu dan membatalkan objek Sesi apabila sesi tamat tempoh.


Bilakah Sesi bermula?

Sesi bermula dengan:

  • Seorang pengguna baharu meminta fail ASP dan fail Global.asa merujuk subrutin Session_OnStart

  • Nilai disimpan dalam pembolehubah Sesi

  • Seorang pengguna meminta fail ASP, dan Global.asa diwujudkan melalui skop sesi menggunakan teg <objek> objek tertentu


hujung?

Jika pengguna tidak meminta atau memuat semula halaman dalam aplikasi dalam masa yang ditetapkan, sesi akan tamat. Nilai lalai ialah 20 minit.

Jika anda ingin menetapkan selang masa tamat menjadi lebih pendek atau lebih lama daripada nilai lalai, anda boleh menggunakan atribut Tamat masa.

Contoh berikut menetapkan selang masa tamat 5 minit:

<%
Session.Timeout=5
%>

Untuk menamatkan sesi dengan segera, gunakan kaedah Abandon:

<%
Sesi.Abandon
%>

Nota: Isu utama apabila menggunakan sesi ialah masa sesi itu sepatutnya tamat. Kami tidak akan tahu sama ada permintaan terkini pengguna ialah permintaan terakhir. Jadi kita tidak tahu berapa lama kita harus membiarkan sesi "hidup". Menunggu terlalu lama untuk sesi terbiar boleh menghabiskan sumber pelayan. Walau bagaimanapun, jika sesi dipadamkan lebih awal, pengguna perlu bermula sekali lagi dan lagi kerana pelayan telah memadamkan semua maklumat. Mencari selang masa tamat masa yang betul boleh menjadi sukar!

lamp.gifPetua: Hanya simpan sejumlah kecil data dalam pembolehubah sesi!


Menyimpan dan mendapatkan semula pembolehubah Sesi

Kelebihan terbesar objek Sesi ialah pembolehubah boleh disimpan di dalamnya untuk bacaan halaman web berikutnya dan julat aplikasinya sangat luas.

Contoh berikut memberikan "Donald Duck" kepada pembolehubah Sesi bernama nama pengguna dan memberikan "50" kepada pembolehubah Sesi bernama umur:

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

Apabila nilai disimpan dalam pembolehubah sesi, ia boleh digunakan oleh mana-mana halaman dalam aplikasi ASP:

Selamat Datang <%Response.Write(Session("nama pengguna"))%> 🎜>
Hasil yang dikembalikan oleh baris kod di atas ialah: "Selamat Datang Donald Duck".

Anda juga boleh menyimpan parameter pengguna dalam objek Sesi dan kemudian mengakses parameter ini untuk menentukan halaman yang hendak dikembalikan kepada pengguna.

Contoh berikut menyatakan bahawa jika pengguna menggunakan resolusi monitor yang rendah, versi teks sahaja halaman dikembalikan:

<%If Session("screenres") ="low" Then%>
Ini ialah versi teks halaman
<%Else%>
Ini ialah versi multimedia halaman
<%End If%> ;


Alih keluar pembolehubah Sesi

Koleksi Kandungan mengandungi semua pembolehubah sesi.

Pembolehubah sesi boleh dialih keluar melalui kaedah Alih Keluar.

Dalam contoh berikut, jika nilai pembolehubah sesi "umur" kurang daripada 18, pembolehubah sesi "jualan" dialih keluar:

<%
Jika Sesi.("umur")<18 maka
Sesi.Kandungan.Alih keluar("jualan")
Tamatkan Jika
%>

Jika anda perlu alih keluar Untuk semua pembolehubah, sila gunakan kaedah RemoveAll:

<%
Session.Contents.RemoveAll()
%>



Lintasi koleksi Kandungan

Koleksi Kandungan mengandungi semua pembolehubah sesi. Anda boleh melihat pembolehubah yang disimpan dalam koleksi Kandungan dengan menggelungkannya:

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

malap i
Untuk Setiap i dalam Sesi.Kandungan
Respons.Tulis(i & "<br>")
Seterusnya
%>

Keputusan:

nama pengguna
umur

Jika anda tidak tahu bilangan item dalam koleksi Kandungan, anda boleh menggunakan Kiraan harta:

<%
malap i
malap j
j=Session.Contents.Count
Respons.Write("Pembolehubah sesi: " & j)
Untuk i=1 hingga j
Respons.Tulis(Sesi.Kandungan(i) & "<br>")
Seterusnya
%>

Keputusan:

Pembolehubah sesi: 2
Donald Duck
50


Merentasi koleksi StaticObjects

Anda boleh melihat storan dengan merentasi koleksi StaticObjects Nilai semua objek dalam objek Session:

<%
dim i
Untuk Setiap i dalam Session.StaticObjects
Respons .Tulis(i & "<br> ;")
Seterusnya
%>