tutorial pengembangan web terbaru
 

ASP sesi Obyek


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


Sidang objek

Ketika Anda bekerja dengan sebuah aplikasi pada komputer Anda, Anda membukanya, melakukan beberapa perubahan dan kemudian Anda menutupnya. Ini jauh seperti Session. Komputer tahu siapa Anda. Ia tahu ketika Anda membuka aplikasi dan ketika Anda menutupnya. Namun, di internet ada satu masalah: server web tidak tahu siapa Anda dan apa yang Anda lakukan, karena alamat HTTP tidak mempertahankan negara.

ASP memecahkan masalah ini dengan menciptakan cookie unik untuk setiap pengguna. cookie dikirim ke komputer pengguna dan berisi informasi yang mengidentifikasi pengguna. Interface ini disebut objek Session.

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

Variabel yang disimpan dalam Sidang informasi objek ditahan sekitar satu single user, dan tersedia untuk semua halaman dalam satu aplikasi. Informasi umum disimpan dalam variabel sesi adalah nama, id, dan preferensi. Server membuat objek Session baru untuk setiap pengguna baru, dan menghancurkan objek Session ketika sesi berakhir.


Ketika melakukan Sesi Mulai?

Sebuah sesi dimulai ketika:

  • Pengguna baru meminta file ASP, dan file Global.asa termasuk prosedur Session_OnStart
  • Nilai disimpan dalam variabel Sesi
  • Seorang pengguna meminta file ASP, dan file Global.asa menggunakan <object> tag untuk instantiate obyek dengan ruang lingkup sesi

Kapan Session End?

Sebuah sesi berakhir jika pengguna tidak diminta atau refresh halaman dalam aplikasi untuk jangka waktu tertentu. Secara default, ini adalah 20 menit.

Jika Anda ingin mengatur interval timeout yang lebih pendek atau lebih panjang dari default, gunakan Timeout properti.

Contoh di bawah menetapkan interval timeout dari 5 menit:

<%
Session.Timeout=5
%>

Gunakan Abandon metode untuk segera mengakhiri sesi:

<%
Session.Abandon
%>

Note: Masalah utama dengan sesi adalah KETIKA mereka harus berakhir. Kami tidak tahu apakah permintaan terakhir pengguna adalah akhir satu atau tidak. Jadi kita tidak tahu berapa lama kita harus menjaga sesi "alive" . Menunggu terlalu lama untuk sesi menganggur menggunakan sumber daya di server, tetapi jika sesi dihapus terlalu cepat pengguna harus mulai dari awal lagi karena server telah dihapus semua informasi. Menemukan interval timeout yang tepat bisa menjadi sulit!

Tip: Hanya menyimpan sejumlah kecil data dalam variabel sesi!


Menyimpan dan Ambil Sesi Variabel

Yang paling penting tentang objek Session adalah bahwa Anda dapat menyimpan variabel di dalamnya.

Contoh di bawah akan mengatur Sesi variabel username untuk "Donald Duck" dan Sesi variabel age ke "50" :

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

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

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

Baris di atas kembali: "Welcome Donald Duck" .

Anda juga dapat menyimpan preferensi pengguna dalam objek Session, dan kemudian mengakses preferensi untuk memilih apa halaman untuk kembali ke pengguna.

Contoh di bawah menentukan versi teks saja halaman jika pengguna memiliki resolusi layar 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 Sesi Variabel

Isi koleksi berisi semua variabel sesi.

Hal ini dimungkinkan untuk menghapus variabel sesi dengan metode Hapus.

Contoh di bawah menghapus sesi variabel "sale" jika nilai variabel sesi "age" lebih rendah dari 18:

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

Untuk menghapus semua variabel dalam sesi, menggunakan metode removeAll:

<%
Session.Contents.RemoveAll()
%>

Lingkaran Melalui Koleksi Isi

Isi koleksi berisi semua variabel sesi. Anda dapat loop melalui koleksi Isi, untuk melihat apa yang tersimpan 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 tahu jumlah item dalam koleksi Isi, 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

Lingkaran Melalui Koleksi StaticObjects

Anda dapat loop melalui koleksi StaticObjects, untuk melihat nilai-nilai dari semua objek disimpan dalam objek Sesi:

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