ล่าสุดการพัฒนาเว็บบทเรียน
×

ASP เกี่ยวกับการสอน

ASP บ้าน ASP บทนำ ASP ติดตั้ง ASP วากยสัมพันธ์ ASP ตัวแปร ASP ขั้นตอน ASP ฟอร์ม ASP Cookies ASP เซสชั่น ASP ใบสมัคร ASP #ประกอบด้วย ASP Global.asa ASP ส่งอีเมลล์

VBScript เกี่ยวกับการสอน

VB บ้าน VB ตัวแปร VB ขั้นตอน VB เงื่อนไข VB วนลูป VB ตัวอย่าง VB ฟังก์ชั่น VB คำสำคัญ

ASP วัตถุ

ASP คำตอบ ASP ขอร้อง ASP ใบสมัคร ASP เซสชั่น ASP เซิร์ฟเวอร์ ASP ผิดพลาด ASP FileSystem ASP TextStream ASP ขับรถ ASP ไฟล์ ASP โฟลเดอร์ ASP พจนานุกรม ASP AdRotator ASP BrowserCap ASP การเชื่อมโยงเนื้อหา ASP Rotator เนื้อหา ASP Ref ด่วน

ADO เกี่ยวกับการสอน

ADO แนะนำ ADO สัมพันธ์ ADO ระเบียน ADO แสดง ADO สอบถาม ADO ประเภท ADO เพิ่ม ADO ปรับปรุง ADO ลบ ADO การสาธิต ADO เร่งความเร็ว

ADO วัตถุ

ADO คำสั่ง ADO สัมพันธ์ ADO ผิดพลาด ADO สนาม ADO พารามิเตอร์ ADO คุณสมบัติ ADO บันทึก ADO ระเบียน ADO กระแส ADO ประเภทข้อมูล

ASP and AJAX

AJAX แนะนำ AJAX ASP AJAX ฐานข้อมูล

ASP ตัวอย่าง

ASP ตัวอย่าง ASP ทดสอบ


 

ASPวัตถุเซสชั่น


วัตถุเซสชันเก็บข้อมูลเกี่ยวกับหรือเปลี่ยนแปลงการตั้งค่าสำหรับเซสชันของผู้ใช้


วัตถุเซสชัน

เมื่อคุณกำลังทำงานกับโปรแกรมประยุกต์บนคอมพิวเตอร์ของคุณคุณเปิดทำการเปลี่ยนแปลงบางอย่างและจากนั้นคุณปิดมัน นี้เป็นเหมือนเซสชัน คอมพิวเตอร์รู้ว่าคุณเป็นใคร มันรู้เมื่อคุณเปิดโปรแกรมและเมื่อคุณปิดมัน อย่างไรก็ตามบนอินเทอร์เน็ตมีปัญหาหนึ่งคือ: เว็บเซิร์ฟเวอร์ไม่ทราบว่าคุณคือใครและสิ่งที่คุณทำเพราะอยู่ HTTP ไม่รักษาสถานะ

ASP แก้ปัญหานี้โดยการสร้างคุกกี้ไม่ซ้ำกันสำหรับผู้ใช้แต่ละคน คุกกี้จะถูกส่งไปยังเครื่องคอมพิวเตอร์ของผู้ใช้และมันมีข้อมูลที่ระบุผู้ใช้ อินเตอร์เฟซนี้เรียกว่าวัตถุเซสชัน

วัตถุเซสชันเก็บข้อมูลเกี่ยวกับหรือเปลี่ยนแปลงการตั้งค่าสำหรับเซสชันของผู้ใช้

ตัวแปรที่เก็บไว้ในข้อมูลเซสชันวัตถุถือเกี่ยวกับผู้ใช้หนึ่งเดียวและมีอยู่ในทุกหน้าในโปรแกรมประยุกต์หนึ่ง ข้อมูลทั่วไปที่เก็บไว้ในตัวแปรเซสชั่นที่มีชื่อรหัสและการตั้งค่า เซิร์ฟเวอร์สร้างวัตถุเซสชันใหม่สำหรับผู้ใช้ใหม่ในแต่ละครั้งและทำลายวัตถุเซสชันเมื่อเซสชันหมดอายุ


เมื่อไม่ได้เริ่มต้นเซสชัน?

เซสชั่นเริ่มต้นเมื่อ:

  • ผู้ใช้ใหม่ร้องขอ ASP ไฟล์และแฟ้ม Global.asa รวมถึงขั้นตอนการ Session_OnStart
  • ค่าจะถูกเก็บไว้ในตัวแปรเซสชัน
  • ผู้ใช้ร้องขอ ASP ไฟล์และแฟ้ม Global.asa ใช้ <object> แท็กในยกตัวอย่างวัตถุที่มีขอบเขตในเซสชั่

เมื่อไหร่เซสชันจบ?

เซสชั่นสิ้นสุดลงหากผู้ใช้ยังไม่ได้ร้องขอหรือรีเฟรชหน้าในการประยุกต์ใช้สำหรับระยะเวลาที่กำหนด โดยค่าเริ่มต้นนี้เป็นเวลา 20 นาที

หากคุณต้องการที่จะกำหนดช่วงเวลาการหมดเวลาที่สั้นหรือนานกว่าเริ่มต้นใช้ Timeout สถานที่ให้บริการ

ตัวอย่างด้านล่างนี้กำหนดช่วงเวลาการหมดเวลา 5 นาที

<%
Session.Timeout=5
%>

ใช้ Abandon วิธีการเพื่อยุติการทันที:

<%
Session.Abandon
%>

Note: ปัญหาหลักที่มีการประชุมคือเมื่อพวกเขาควรจะจบ เราไม่ทราบว่าหากคำขอสุดท้ายของผู้ใช้เป็นครั้งสุดท้ายหรือไม่ ดังนั้นเราจึงไม่ทราบว่านานแค่ไหนที่เราควรจะให้เซสชั่น "alive" รอนานเกินไปสำหรับเซสชั่นไม่ได้ใช้งานใช้ทรัพยากรบนเซิร์ฟเวอร์ แต่ถ้าเซสชั่นจะถูกลบออกเร็วเกินไปที่ผู้ใช้มีการเริ่มต้นอีกครั้งเนื่องจากเซิร์ฟเวอร์ได้ลบข้อมูลทั้งหมด การหาช่วงเวลาที่หมดเวลาที่เหมาะสมอาจเป็นเรื่องยาก!

Tip: เฉพาะการจัดเก็บข้อมูลจำนวนน้อยตัวแปรในเซสชั่น!


จัดเก็บและเรียกตัวแปรเซสชัน

สิ่งที่สำคัญที่สุดเกี่ยวกับวัตถุเซสชันคือการที่คุณสามารถจัดเก็บตัวแปรในนั้น

ตัวอย่างด้านล่างจะตั้งเซสชันตัวแปร username เพื่อ "Donald Duck" และเซสชันตัวแปร age การ "50" :

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

เมื่อค่าจะถูกเก็บไว้ในตัวแปรเซสชั่นที่จะสามารถเข้าถึงได้จากหน้าใด ๆ ในการประยุกต์ใช้ ASP:

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

บรรทัดข้างต้นผลตอบแทน: "Welcome Donald Duck"

นอกจากนี้คุณยังสามารถจัดเก็บค่าของผู้ใช้ในวัตถุเซสชันแล้วเข้าถึงการตั้งค่าที่จะเลือกสิ่งที่หน้าเพื่อกลับไปยังผู้ใช้

ตัวอย่างด้านล่างระบุรุ่นข้อความเท่านั้นของหน้าถ้าผู้ใช้มีความละเอียดหน้าจอต่ำ:

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

ลบตัวแปรเซสชัน

คอลเลกชันสารบัญมีตัวแปรเซสชั่นทั้งหมด

มันเป็นไปได้ที่จะเอาตัวแปรเซสชั่นที่มีวิธีการเอาออก

ตัวอย่างด้านล่างนี้เอาตัวแปรเซสชั่น "sale" ถ้าค่าของตัวแปรเซสชั่น "age" ต่ำกว่า 18:

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

ในการลบตัวแปรทั้งหมดในเซสชั่นใช้วิธีการ RemoveAll:

<%
Session.Contents.RemoveAll()
%>

ห่วงผ่านคอลเลกชันสารบัญ

คอลเลกชันสารบัญมีตัวแปรเซสชั่นทั้งหมด คุณสามารถห่วงผ่านคอลเลกชันเนื้อหาเพื่อดูสิ่งที่เก็บไว้ในนั้น:

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

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

ผล:

username
age

หากคุณไม่ทราบจำนวนของรายการในคอลเลกชันเนื้อหาที่คุณสามารถใช้ทรัพย์สินนับ:

<%
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
%>

ผล:

Session variables: 2
Donald Duck
50

ห่วงผ่านคอลเลกชัน StaticObjects

คุณสามารถห่วงผ่านคอลเลกชัน StaticObjects เพื่อที่จะเห็นค่าของวัตถุทั้งหมดเก็บไว้ในวัตถุเซสชั่น:

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