คอลเลกชันเซสชัน StaticObjects
คอลเลกชัน StaticObjects มีวัตถุทั้งหมดที่สร้างขึ้นด้วยแท็ก <OBJECT> ในขอบเขตวัตถุเซสชัน คอลเลกชันนี้สามารถใช้เพื่อกำหนดค่าของคุณสมบัติเฉพาะของวัตถุ หรือเพื่อวนซ้ำคอลเลกชันและรับคุณสมบัติทั้งหมดสำหรับวัตถุทั้งหมด
ไวยากรณ์
พารามิเตอร์
Session.StaticObjects (คีย์)
สำคัญ
คุณลักษณะที่จะดึงข้อมูล
หมายเหตุ: ใช้โครงสร้างการควบคุมแบบวนซ้ำเพื่อวนซ้ำคำสำคัญในคอลเลกชัน StaticObjects ดูตัวอย่างด้านล่าง
-
ติ่มซำ objprop
สำหรับแต่ละ objprop ใน Session.StaticObjects
Response.write(objproperty & " : " & Session.StaticObjects(objprop) & "<BR>")
ถัดไป
>
การรวบรวมเนื้อหาเซสชัน
คอลเลกชัน Session.contents รวมรายการทั้งหมดที่สร้างขึ้นสำหรับเซสชันนี้โดยไม่ต้องใช้แท็ก <OBJECT> คอลเลกชันนี้สามารถใช้เพื่อกำหนดค่าของรายการเซสชันที่ระบุ หรือเพื่อวนซ้ำผ่านคอลเลกชันและเรียกค้นรายการของรายการทั้งหมดในเซสชัน
ไวยากรณ์
พารามิเตอร์
Session.Contents (คีย์)
สำคัญ
ชื่อของคุณสมบัติที่จะได้รับ
หมายเหตุ คุณสามารถใช้โครงสร้างการควบคุมการวนซ้ำเพื่อวนซ้ำคำสำคัญในคอลเลกชันเนื้อหา ตัวอย่างต่อไปนี้แสดงให้เห็นถึงกระบวนการนี้
-
เซสซิเทมติ่มซำ
สำหรับแต่ละเซสชันในเซสชันเนื้อหา
Response.write(sessitem & " : " & Session.Contents(sessitem) & "<BR>")
ถัดไป
%>
โค้ดเพจ
คุณสมบัติ CodePage กำหนดโค้ดเพจที่จะใช้ในการแสดงเนื้อหาแบบไดนามิก
ไวยากรณ์
พารามิเตอร์
Session.CodePage(=Codepage)
เพจรหัส
นี่คือจำนวนเต็มที่ไม่ได้ลงนามซึ่งแสดงถึงโค้ดเพจที่ถูกต้องของระบบที่กลไกการเขียนสคริปต์ ASP กำลังทำงานอยู่
โค้ดเพจคำอธิบายประกอบคือชุดอักขระที่สามารถประกอบด้วยตัวเลข เครื่องหมายวรรคตอน และตัวอักษรอื่นๆ โค้ดเพจที่แตกต่างกันสามารถใช้สำหรับภาษาและภูมิภาคที่แตกต่างกัน ตัวอย่างเช่น รหัส ANSI หน้า 1252 ใช้สำหรับภาษาอังกฤษแบบสหรัฐอเมริกาและภาษายุโรปส่วนใหญ่ รหัส OEM หน้า 932 ใช้สำหรับตัวอักษรคันจิของญี่ปุ่น
โค้ดเพจคือตารางอักขระที่แมปอักขระเป็นค่าไบต์เดียวหรือหลายไบต์ โค้ดเพจจำนวนมากใช้อักขระร่วมกันระหว่าง 0x00 - 0x7F ในชุดอักขระ ASCII
ละทิ้ง
เมธอด Abandon จะลบออบเจ็กต์ทั้งหมดที่จัดเก็บไว้ในออบเจ็กต์ Session และปล่อยแหล่งที่มาของออบเจ็กต์เหล่านี้ หากคุณไม่ได้เรียกใช้เมธอด Abandon อย่างชัดเจน เซิร์ฟเวอร์จะลบออบเจ็กต์เหล่านี้เมื่อเซสชันหมดเวลา
ไวยากรณ์
เซสชันละทิ้ง
คำอธิบายประกอบ
เมื่อเรียกใช้เมธอด Abandon ออบเจ็กต์เซสชันปัจจุบันจะถูกลบตามลำดับ แต่ออบเจ็กต์จะไม่ถูกลบจริงๆ จนกว่าคำสั่งสคริปต์ทั้งหมดในเพจปัจจุบันจะได้รับการประมวลผล ซึ่งหมายความว่าเมื่อมีการเรียก Abandon ตัวแปรที่จัดเก็บไว้ในออบเจ็กต์เซสชันจะสามารถเข้าถึงได้บนเพจปัจจุบัน แต่จะเข้าถึงไม่ได้บนเว็บเพจถัดไป
ตัวอย่างเช่น ในสคริปต์ต่อไปนี้ บรรทัดที่สามพิมพ์ค่า Mary เนื่องจากวัตถุเซสชันจะไม่ถูกลบก่อนที่เซิร์ฟเวอร์จะเสร็จสิ้นการประมวลผลสคริปต์
-
เซสชั่นละทิ้ง
เซสชั่น("ชื่อของฉัน") = "แมรี่"
Response.Write (เซสชัน ("ชื่อของฉัน"))
%>
หากคุณเข้าถึงตัวแปร MyName บนหน้าเว็บถัดไป คุณจะพบว่าตัวแปรนั้นว่างเปล่า เนื่องจากเมื่อเพจที่มีตัวอย่างก่อนหน้านี้เสร็จสิ้นการประมวลผล MyName จะถูกลบพร้อมกับอ็อบเจ็กต์เซสชันก่อนหน้า
เมื่อเซสชันถูกยกเลิกและเปิดเว็บเพจถัดไป เซิร์ฟเวอร์จะสร้างอ็อบเจ็กต์เซสชันใหม่ คุณสามารถจัดเก็บตัวแปรและอ็อบเจ็กต์ไว้ในอ็อบเจ็กต์เซสชันใหม่ได้
ตัวอย่าง ตัวอย่างต่อไปนี้จะเผยแพร่สถานะเซสชันเมื่อเซิร์ฟเวอร์เสร็จสิ้นการประมวลผลเพจปัจจุบัน
<% เซสชัน ละทิ้ง %>
LCID
คุณลักษณะ LCID กำหนดตัวระบุตำแหน่งที่ใช้เพื่อแสดงเนื้อหาแบบไดนามิก
ไวยากรณ์
พารามิเตอร์
Session.LCID(=LCID)
แอลซีดี
การระบุไซต์ที่มีประสิทธิภาพ
ความคิดเห็น
LCID ระบุตัวระบุไซต์ ซึ่งเป็นตัวย่อมาตรฐานสากลที่ระบุไซต์ที่กำหนดโดยระบบบางอย่างโดยไม่ซ้ำกัน
รหัสเซสชัน
คุณสมบัติ SessionID ส่งคืน ID เซสชันของผู้ใช้ เมื่อสร้างเซสชัน เซิร์ฟเวอร์จะสร้าง ID แยกกันสำหรับแต่ละเซสชัน รหัสเซสชันจะถูกส่งกลับเป็นชนิดข้อมูลที่ยาว
ไวยากรณ์
Session.SessionID
หมายเหตุ ห้ามใช้คุณสมบัติ SessionID เพื่อสร้างคีย์หลักสำหรับแอปพลิเคชันฐานข้อมูล เนื่องจากหากเว็บเซิร์ฟเวอร์ถูกรีสตาร์ท ค่า SessionID บางส่วนอาจเหมือนเดิมก่อนที่เซิร์ฟเวอร์จะถูกยกเลิก คุณสามารถใช้ประเภทข้อมูลคอลัมน์ที่เพิ่มขึ้นอัตโนมัติแทน เช่น IDENTITY ใน Microsoft® SQL Server หรือ COUNTER ใน Microsoft® Access
Session_OnStart
เหตุการณ์ Session_OnStart เกิดขึ้นเมื่อเซิร์ฟเวอร์สร้างเซสชันใหม่ เซิร์ฟเวอร์ประมวลผลสคริปต์ก่อนที่จะดำเนินการหน้าที่ร้องขอ เหตุการณ์ Session_OnStart เป็นเวลาที่ดีที่สุดในการตั้งค่าตัวแปรเซสชันเนื่องจากมีการตั้งค่าก่อนที่จะเข้าถึงเพจใดๆ ออบเจ็กต์ในตัวทั้งหมด (Application, ObjectContext, Request, Response, Server และ Session) สามารถใช้และอ้างอิงในสคริปต์เหตุการณ์ Session_OnStart
ไวยากรณ์
=
Server>พารามิเตอร์
ย่อย Session_OnStart
ScriptLanguage
ระบุภาษาสคริปต์ที่ใช้สคริปต์เหตุการณ์ สามารถเป็นภาษาใดก็ได้ที่รองรับการเขียนสคริปต์ เช่น VBScript หรือ JScript หากคุณมีหลายเหตุการณ์ที่ใช้ภาษาสคริปต์เดียวกัน คุณสามารถจัดระเบียบเหตุการณ์เหล่านั้นภายใต้ชุดแท็ก <SCRIPT>
ตัวอย่าง แม้ว่าอ็อบเจ็กต์เซสชันจะยังคงมีอยู่หากเหตุการณ์ Session_OnStart มีการเรียกเมธอด Redirect หรือ End เซิร์ฟเวอร์จะหยุดการประมวลผลไฟล์ Global.asa และทริกเกอร์สคริปต์ในไฟล์ที่ทริกเกอร์เหตุการณ์ Session_OnStart
ตัวอย่างเช่น เพื่อให้แน่ใจว่าผู้ใช้เริ่มต้นเซสชันเสมอเมื่อเปิดเว็บเพจเฉพาะ คุณสามารถเรียกใช้เมธอด Redirect ในเหตุการณ์ Session_OnStart เมื่อผู้ใช้เข้าสู่แอปพลิเคชัน เซิร์ฟเวอร์จะสร้างเซสชันสำหรับผู้ใช้และจัดการสคริปต์เหตุการณ์ Session_OnStart คุณสามารถรวมสคริปต์ในเหตุการณ์นี้เพื่อตรวจสอบว่าเพจที่ผู้ใช้เปิดเป็นเพจเริ่มต้นหรือไม่ และถ้าไม่ใช่ ให้สั่งให้ผู้ใช้เรียกใช้เมธอด Response.Redirect เพื่อเปิดใช้เพจ การสาธิตจะแสดงในตัวอย่างต่อไปนี้
<SCRIPT RUNAT=ภาษาเซิร์ฟเวอร์=VBScript>
SubSession_OnStart
' ตรวจสอบให้แน่ใจว่าผู้ใช้ใหม่เริ่มต้นอย่างถูกต้อง
' หน้าของแอปพลิเคชัน ASP 'โดย aspxuexi.com
' แทนที่ค่าที่กำหนดให้กับ startPage ด้านล่าง
' พร้อมเส้นทางเสมือนไปยังแอปพลิเคชันของคุณ
' หน้าเริ่มต้น.
startPage = "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")
' ทำการเปรียบเทียบโดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
' ไม่ตรงกัน ให้ส่งผู้ใช้ไปที่หน้าเริ่มต้น
ถ้า strcomp(currentPage,startPage,1) ดังนั้น Response.Redirect(startPage) สิ้นสุด ifEnd Sub</SCRIPT>
ตัวอย่างข้างต้นจะใช้ได้เฉพาะในเบราว์เซอร์ที่รองรับคุกกี้เท่านั้น เนื่องจากเบราว์เซอร์ที่ไม่สนับสนุนคุกกี้ไม่สามารถส่งคืนคุกกี้ SessionID ได้ เซิร์ฟเวอร์จึงสร้างเซสชันใหม่ทุกครั้งที่ผู้ใช้ร้องขอเว็บเพจ ด้วยวิธีนี้สำหรับทุกคำขอ เซิร์ฟเวอร์จะประมวลผลสคริปต์ Session_OnStart และเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าเริ่มต้นใช้งาน หากคุณใช้สคริปต์ด้านล่าง ขอแนะนำให้คุณติดประกาศบนหน้าเริ่มต้นเพื่อแจ้งให้ผู้ใช้ทราบว่าไซต์ดังกล่าวต้องใช้เบราว์เซอร์ที่เปิดใช้งานคุกกี้
หมายเหตุ: โปรดทราบว่าสคริปต์เหตุการณ์ Session_OnStart ใดๆ หลังจากวิธีการเปลี่ยนเส้นทางจะไม่ถูกดำเนินการ ดังนั้น ควรเรียกวิธีการเปลี่ยนเส้นทางที่ส่วนท้ายของสคริปต์เหตุการณ์ของคุณ การสาธิตจะแสดงในตัวอย่างต่อไปนี้
<ภาษาสคริปต์=VBScript RUNAT=เซิร์ฟเวอร์>
SubSession_OnStart
' สคริปต์การเริ่มต้นเซสชัน
'โดย aspxuexi.com
Response.Redirect "http:/server/app/StartHere.asp"
จบย่อย
</สคริปต์>
ในตัวอย่างข้างต้น วิธีการเปลี่ยนเส้นทางจะซ่อนข้อความทั้งหมดที่แสดงต่อไคลเอนต์ระหว่างการดำเนินการสคริปต์การเริ่มต้นเซสชัน
เซสชัน_เมื่อสิ้นสุด
เหตุการณ์ Session_OnEnd เกิดขึ้นเมื่อเซสชันถูกยกเลิกหรือหมดเวลา ในบรรดาออบเจ็กต์ในตัวของเซิร์ฟเวอร์ มีเพียงออบเจ็กต์ Application, Server และ Session เท่านั้นที่พร้อมใช้งาน
ไวยากรณ์
Server
>พารามิเตอร์
Sub Session_OnEnd
ScriptLanguage
ระบุภาษาสคริปต์ที่ใช้สคริปต์เหตุการณ์ สามารถเป็นภาษาใดก็ได้ที่รองรับการเขียนสคริปต์ เช่น VBScript หรือ JScript หากคุณมีหลายเหตุการณ์ที่ใช้ภาษาสคริปต์เดียวกัน คุณสามารถจัดระเบียบเหตุการณ์เหล่านั้นภายใต้ชุดแท็ก <SCRIPT>
หมายเหตุ: ไม่สามารถเรียกเมธอด MapPath ในสคริปต์ Session_OnEnd ได้
หมดเวลา
คุณสมบัติการหมดเวลาระบุระยะเวลาการหมดเวลาเป็นนาทีสำหรับวัตถุเซสชันของแอปพลิเคชัน หากผู้ใช้ไม่รีเฟรชหรือร้องขอเพจภายในระยะหมดเวลานี้ เซสชันจะสิ้นสุดลง
ไวยากรณ์
พารามิเตอร์
Session.Timeout[=nMinutes]
nนาที
ระบุจำนวนนาทีที่เซสชันจะไม่ได้ใช้งานเพื่อให้เซิร์ฟเวอร์ยุติเซสชันโดยอัตโนมัติ ค่าเริ่มต้นคือ 15 นาที