Asp.net的網頁生命週期
Asp.net網頁生命週期
指的是asp.net server端在接收到client端所送出的http request後,處理的流程。
分成八個階段,依序完成。
1. Page request(要求)
接收client端發出的request物件,決定要重新生成網頁回傳,還是快取裡面有可以直接回傳的網頁資料。
2. Start(開始)
a. 準備 request跟response物件的屬性,最後會在rendering階段寫入。3. Initialization(初始化)
a. 套用佈景主題b. 載入web 伺服器控制項(WebControls);如果是這次是Postback,這階段還沒有把ViewState恢復。
(ViewState是asp.net的機制,會把控制項選好的內容用<input type="hidden" ....>偷偷記錄下來,傳遞的時候才不會造成每次控制項都清空。
因為http是無狀態協定,每一個request都是獨立的,不會紀錄client跟server端的資料,就不會知道上一次使用者選了什麼;用ViewState記錄下來的話,server這邊就會把控制項的值都設定成ViewState的狀態,再傳回client端,client端看起來就會像是沒有改變了,缺點是一來一回要傳的資料量就比較大,效能會比較差。)
4. Load(載入)
a. 如果是Postback,就恢復Webcontrol控制項的ViewState。(也就是把之前選取的狀態都設定好,傳回去client端才不會變成初始化的狀態,造成使用者需要重選。)
5. Validation(驗證)
a. 呼叫每個Webcontrol控制項的Validate()方法,執行各自的驗證。並設定每個控制項和整個網頁的IsValid屬性。6. Event Handling(事件處理)
a. 處理Postback的事件
7. Rendering(呈現)
a. 把ViewState跟Webcontrol控制項狀態儲存8. Unload(卸載)
a. 把網頁成功送回給clinet端並顯示在瀏覽器上,就可以把網頁卸載清理。
留言
張貼留言