Objek Sesi ASP


Objek Sesi menyimpan informasi tentang, atau mengubah pengaturan untuk sesi pengguna.


Objek sesi

Saat Anda bekerja dengan aplikasi di komputer Anda, Anda membukanya, melakukan beberapa perubahan dan kemudian Anda menutupnya. Ini sangat mirip dengan Sesi. Komputer tahu siapa Anda. Ia tahu kapan Anda membuka aplikasi dan kapan Anda menutupnya. Namun, di internet ada satu masalah: server web tidak mengetahui siapa Anda dan apa yang Anda lakukan, karena alamat HTTP tidak mempertahankan status.

ASP memecahkan masalah ini dengan membuat cookie unik untuk setiap pengguna. Cookie dikirim ke komputer pengguna dan berisi informasi yang mengidentifikasi pengguna. Antarmuka ini disebut objek Sesi.

Objek Sesi menyimpan informasi tentang, atau mengubah pengaturan untuk sesi pengguna.

Variabel yang disimpan dalam objek Session menyimpan informasi tentang satu pengguna tunggal, dan tersedia untuk semua halaman dalam satu aplikasi. Informasi umum yang disimpan dalam variabel sesi adalah nama, id, dan preferensi. Server membuat objek Sesi baru untuk setiap pengguna baru, dan menghancurkan objek Sesi saat sesi berakhir.


Kapan Sesi Dimulai?

Sesi dimulai ketika:

  • Pengguna baru meminta file ASP, dan file Global.asa menyertakan prosedur Session_OnStart
  • Nilai disimpan dalam variabel Sesi
  • Pengguna meminta file ASP, dan file Global.asa menggunakan tag <object> untuk membuat instance objek dengan cakupan sesi

Kapan Sesi Berakhir?

Sesi berakhir jika pengguna tidak meminta atau me-refresh halaman dalam aplikasi untuk jangka waktu tertentu. Secara default, ini adalah 20 menit.

Jika Anda ingin mengatur interval waktu tunggu yang lebih pendek atau lebih lama dari default, gunakan properti Timeout .

Contoh di bawah ini menetapkan interval waktu tunggu 5 menit:

<%
Session.Timeout=5
%>

Gunakan metode Abaikan untuk segera mengakhiri sesi:

<%
Session.Abandon
%>

Catatan: Masalah utama dengan sesi adalah KAPAN mereka harus berakhir. Kami tidak tahu apakah permintaan terakhir pengguna adalah yang terakhir atau tidak. Jadi kita tidak tahu berapa lama kita harus menjaga sesi "hidup". Menunggu terlalu lama untuk sesi menganggur menghabiskan sumber daya di server, tetapi jika sesi dihapus terlalu cepat, pengguna harus memulai dari awal lagi karena server telah menghapus semua informasi. Menemukan interval batas waktu yang tepat bisa jadi sulit!

Tip: Hanya simpan data dalam jumlah KECIL dalam variabel sesi!



Simpan dan Ambil Variabel Sesi

Hal terpenting tentang objek Session adalah Anda dapat menyimpan variabel di dalamnya.

Contoh di bawah ini akan menetapkan nama pengguna variabel Sesi menjadi "Donald Duck" dan variabel Sesi usia menjadi "50":

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

Ketika nilai disimpan dalam variabel sesi, itu dapat dicapai dari halaman APAPUN di aplikasi ASP:

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

Baris di atas mengembalikan: "Selamat datang Donald Duck".

Anda juga dapat menyimpan preferensi pengguna di objek Sesi, lalu mengakses preferensi tersebut untuk memilih halaman yang akan dikembalikan ke pengguna.

Contoh di bawah menentukan versi halaman hanya teks jika pengguna memiliki resolusi layar yang rendah:

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

Hapus Variabel Sesi

Koleksi Isi berisi semua variabel sesi.

Dimungkinkan untuk menghapus variabel sesi dengan metode Hapus.

Contoh di bawah ini menghapus variabel sesi "penjualan" jika nilai variabel sesi "usia" lebih rendah dari 18:

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

Untuk menghapus semua variabel dalam satu sesi, gunakan metode RemoveAll:

<%
Session.Contents.RemoveAll()
%>

Ulangi Koleksi Konten

Koleksi Isi berisi semua variabel sesi. Anda dapat mengulang koleksi Contents, untuk melihat apa yang disimpan di dalamnya:

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

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

Hasil:

username
age

Jika Anda tidak mengetahui jumlah item dalam koleksi Contents, Anda dapat menggunakan properti 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
%>

Hasil:

Session variables: 2
Donald Duck
50

Loop Melalui Koleksi StaticObjects

Anda dapat mengulang koleksi StaticObjects, untuk melihat nilai semua objek yang disimpan di objek Session:

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