Latest web development tutorials

ASP วัตถุสมัย

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


วัตถุสมัย

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

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

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

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


เซสชั่นเมื่อจะเริ่มต้นอย่างไร

เซสชั่นเริ่มต้นที่:

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

การประชุมจะจบ?

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

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

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

<%
Session.Timeout=5
%>

เพื่อยุติการทันทีโปรดใช้วิธีการละทิ้ง:

<%
Session.Abandon
%>

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

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


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

วัตถุสมัยเป็นประโยชน์ที่ใหญ่ที่สุดเป็นตัวแปรในการที่จะจัดเก็บสำหรับหน้าถัดไปอ่านช่วงการประยุกต์ใช้เป็นที่กว้างมาก

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

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

เมื่อค่าจะถูกเก็บไว้ในตัวแปรเซสชั่นก็สามารถโปรแกรม ASP จะใช้หน้าเว็บใด ๆ :

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

ผลลัพธ์ข้างต้นบรรทัดนี้ของผลตอบแทนรหัส: "ยินดีต้อนรับเป็ดโดนัลด์"

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

ตัวอย่างต่อไปนี้แสดงให้เห็นว่าถ้าผู้ใช้ใช้จอแสดงผลความละเอียดต่ำรุ่นข้อความธรรมดาของหน้าจะถูกส่งกลับ:

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


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

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

ตัวแปรเซสชั่นสามารถถอดออกได้โดยวิธีการเอาออก

ในตัวอย่างด้านล่างถ้า "อายุ" ของค่าของตัวแปรเซสชั่นน้อยกว่า 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


คอลเลกชัน traversal StaticObjects

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

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