วงจรชีวิตของ ASP.NET ระบุวิธีการ:
ASP.NET ประมวลผลเพจเพื่อสร้างเอาต์พุตแบบไดนามิก
แอปพลิเคชันและเพจของแอปพลิเคชันได้รับการสร้างอินสแตนซ์และประมวลผล
ASP.NET รวบรวมเพจแบบไดนามิก
วงจรชีวิตของ ASP.NET สามารถแบ่งออกเป็นสองกลุ่ม:
วงจรชีวิตของแอปพลิเคชัน
วงจรชีวิตของเพจ
วงจรชีวิตของแอปพลิเคชันมีระยะดังต่อไปนี้:
ผู้ใช้ร้องขอการเข้าถึงทรัพยากรของแอปพลิเคชันซึ่งเป็นเพจ เบราว์เซอร์ส่งคำขอนี้ไปยังเว็บเซิร์ฟเวอร์
ไปป์ไลน์แบบรวมได้รับการร้องขอแรก และเกิดเหตุการณ์ต่อไปนี้:
ออบเจ็กต์ของคลาส ApplicationManager ถูกสร้างขึ้น
ออบเจ็กต์ของคลาส HostingEnvironment ถูกสร้างขึ้นเพื่อจัดเตรียมทรัพยากรข้อมูล
สร้างวัตถุตอบสนอง ออบเจ็กต์แอปพลิเคชัน เช่น HttpContext, HttpRequest และ HttpResponse ถูกสร้างขึ้นและเตรียมใช้งาน
อินสแตนซ์ของวัตถุ HttpApplication ถูกสร้างขึ้นและกำหนดให้กับคำขอ
คำขอได้รับการจัดการโดยคลาส HttpApplication เหตุการณ์ที่แตกต่างกันจะกระตุ้นให้เกิดคำขอการประมวลผลดังกล่าว
เมื่อมีการร้องขอเพจ เพจนั้นจะถูกโหลดลงในหน่วยความจำเซิร์ฟเวอร์ จากนั้นจึงประมวลผลและให้บริการไปยังเบราว์เซอร์ จากนั้นยกเลิกการโหลดออกจากหน่วยความจำ ในแต่ละขั้นตอนเหล่านี้ วิธีการและเหตุการณ์จะพร้อมใช้งานและสามารถปรับเปลี่ยนได้ตามต้องการโดยแอปพลิเคชัน กล่าวอีกนัยหนึ่ง คุณสามารถเขียนโค้ดของคุณเองเพื่อแทนที่โค้ดเริ่มต้นได้
คลาสเพจสร้างแผนผังลำดับชั้นของการควบคุมทั้งหมดบนเพจ ส่วนประกอบทั้งหมดบนเพจ ยกเว้นคำสั่ง เป็นส่วนหนึ่งของแผนผังการควบคุม คุณสามารถดูแผนผังการควบคุมได้โดยเพิ่มการติดตาม = "true" ลงในคำสั่งของหน้า เราจะแทนที่คำสั่งของเพจและติดตามภายใต้ 'คำสั่ง' และ 'การจัดการเหตุการณ์'
ระยะวงจรชีวิตของเพจคือ:
การเริ่มต้น
การสร้างอินสแตนซ์การควบคุมหน้า
การกู้คืนและการบำรุงรักษาของรัฐ
การดำเนินการโค้ดการจัดการเหตุการณ์
การแสดงหน้า
การทำความเข้าใจวงจรของหน้าช่วยให้เราเขียนโค้ดเพื่อให้สิ่งต่างๆ ที่เฉพาะเจาะจงสามารถเกิดขึ้นได้ในทุกขั้นตอนของวงจรชีวิตของเพจ นอกจากนี้ยังช่วยให้คุณเขียนการควบคุมแบบกำหนดเองและเริ่มต้นการควบคุมในเวลาที่เหมาะสม เติมคุณสมบัติด้วยข้อมูลจากสถานะมุมมอง และเรียกใช้โค้ดสำหรับพฤติกรรมของตัวควบคุม
ต่อไปนี้เป็นขั้นตอนต่างๆ ของเพจ ASP.NET:
คำขอเพจ - เมื่อ ASP.NET ได้รับการร้องขอเพจ จะตัดสินใจว่าจะแยกวิเคราะห์และคอมไพล์เพจหรือให้เพจเวอร์ชันแคชตอบสนองตามนั้น
เริ่มต้นวงจรชีวิตของเพจ - ในระยะนี้ ออบเจ็กต์คำขอและการตอบกลับจะได้รับการตั้งค่า หากเป็นคำขอเก่าหรือ postback คุณสมบัติ IsPostBack ของเพจจะถูกตั้งค่าให้ถูกต้อง นอกจากนี้ยังมีการตั้งค่าคุณสมบัติ ULCulture ของเพจด้วย
การเริ่มต้นเพจ - ในระหว่างระยะนี้ การควบคุมบนเพจจะได้รับการกำหนด ID ที่ไม่ซ้ำกัน และธีมจะถูกนำไปใช้โดยการตั้งค่าคุณสมบัติ UniqueID สำหรับคำขอใหม่ ข้อมูล postback จะถูกโหลดและคุณสมบัติการควบคุมจะถูกคืนค่าเป็นค่าสถานะมุมมอง
การโหลดหน้า - ในระยะนี้ คุณสมบัติการควบคุมจะถูกตั้งค่า โดยใช้สถานะมุมมองและค่าสถานะการควบคุม
การตรวจสอบ - วิธีการตรวจสอบของตัวควบคุมการตรวจสอบถูกเรียกและดำเนินการสำเร็จ และคุณสมบัติ IsValid ของเพจถูกตั้งค่าเป็นจริง
การจัดการเหตุการณ์ Postback - หากคำขอนั้นเป็น Postback (คำขอเก่า) ระบบจะเรียกตัวจัดการเหตุการณ์ที่เกี่ยวข้อง
การแสดงเพจ - ในขั้นตอนนี้ สถานะมุมมองของเพจและการควบคุมทั้งหมดจะถูกบันทึกไว้ เพจเรียกวิธีการแสดงสำหรับแต่ละตัวควบคุม และเอาต์พุตที่แสดงผลจะถูกเขียนไปยังคลาส OutputStream ในคุณสมบัติการตอบสนองของเพจ
ยกเลิกการโหลด - เพจที่แสดงจะให้บริการแก่ลูกค้าและแอตทริบิวต์ของเพจ เช่น การตอบสนองและคำขอ จะถูกยกเลิกการโหลดและเคลียร์ทั้งหมด
ในแต่ละขั้นตอนของวงจรชีวิตของเพจ เพจจะเริ่มทำงานเป็นระยะเวลาหนึ่งและจะถูกเข้ารหัส ตัวจัดการเหตุการณ์โดยพื้นฐานแล้วคือฟังก์ชันหรือรูทีนย่อยที่เชื่อมโยงกับเหตุการณ์ โดยใช้คุณสมบัติการประกาศหรือตัวจัดการ เช่น OnClick
ต่อไปนี้คือเหตุการณ์วงจรชีวิตของเพจ:
PreInit - PreInit เป็นเหตุการณ์แรกในวงจรชีวิตของเพจ จะตรวจสอบคุณสมบัติ IsPostBack และกำหนดว่าเพจนั้นถูกโพสต์กลับหรือไม่ โดยจะตั้งค่าธีมและโฮมเพจ สร้างการควบคุมแบบไดนามิก และรับและตั้งค่าคุณสมบัติโปรไฟล์ค่า เหตุการณ์นี้สามารถจัดการได้โดยการแทนที่เมธอด OnPreInit หรือการสร้างตัวจัดการ Page_PreInit
Init - เหตุการณ์ Init เริ่มต้นคุณสมบัติการควบคุมและสร้างแผนผังการควบคุม เหตุการณ์นี้สามารถจัดการได้โดยการโอเวอร์โหลดเมธอด OnInit หรือการสร้างตัวจัดการ Page_Init
InitComplete - เหตุการณ์ InitComplete ช่วยให้สามารถติดตามสถานะมุมมองได้ การควบคุมทั้งหมดเปิดใช้งานการติดตามในสถานะมุมมอง
LoadViewState - เหตุการณ์ LoadViewState อนุญาตให้โหลดข้อมูลสถานะมุมมองลงในตัวควบคุม
LoadPostData - ในระหว่างขั้นตอนนี้ เนื้อหาของฟิลด์อินพุตทั้งหมดที่กำหนดโดยแท็ก จะได้รับการประมวลผล
PreLoad - PreLoad เกิดขึ้นก่อนที่จะโหลดข้อมูล postback ในตัวควบคุม เหตุการณ์นี้สามารถจัดการได้โดยการโอเวอร์โหลดเมธอด OnPreLoad หรือสร้างตัวจัดการ Pre_Load
โหลด - เหตุการณ์ Load จะถูกยกขึ้นเป็นอันดับแรกตามเพจ จากนั้นจึงเรียกซ้ำไปยังส่วนควบคุมย่อยทั้งหมด การควบคุมในแผนผังการควบคุมจะถูกสร้างขึ้น เหตุการณ์นี้สามารถจัดการได้โดยการโอเวอร์โหลดเมธอด OnLoad หรือการสร้างตัวจัดการ Page_Load
LoadComplete - กระบวนการโหลดเสร็จสิ้น ควบคุมการทำงานของตัวจัดการเหตุการณ์ และเกิดการตรวจสอบหน้า เหตุการณ์นี้สามารถจัดการได้โดยการโอเวอร์โหลดเมธอด OnLoad หรือการสร้างตัวจัดการ Page_LoadComplete
PreRender - เหตุการณ์ PreRender เกิดขึ้นก่อนที่จะแสดงเอาต์พุต โดยการจัดการเหตุการณ์นี้ เพจและตัวควบคุมสามารถดำเนินการอัพเดตใดๆ ก่อนที่จะแสดงเอาต์พุตได้
PreRenderComplete - เมื่อมีการยกเหตุการณ์ PreRender สำหรับการควบคุมลูกทั้งหมดในลูป เหตุการณ์นี้จะช่วยให้แน่ใจว่าขั้นตอนก่อนการแสดงผลจะเสร็จสมบูรณ์
SaveStateComplete - บันทึกสถานะการควบคุมเพจแล้ว การตั้งค่าส่วนบุคคล สถานะการควบคุม และข้อมูลสถานะมุมมองจะถูกบันทึกไว้
ยกเลิกการโหลด - ระยะยกเลิกการโหลดคือระยะสุดท้ายของวงจรชีวิตของเพจ โดยจะทำให้เกิดเหตุการณ์ UnLoad สำหรับการควบคุมทั้งหมดในลูป และสุดท้ายสำหรับหน้านั้นเอง ในที่สุดก็เสร็จสิ้นการทำความสะอาดและปล่อยทรัพยากรและข้อมูลอ้างอิงทั้งหมด เช่น การเชื่อมต่อฐานข้อมูล เหตุการณ์นี้สามารถจัดการได้โดยการปรับวิธี OnLoad หรือสร้างตัวจัดการ Page_UnLoad