有人問我在某段時間的採訪中解釋了ASP.NET頁面生命週期。我確實向他解釋過,但他對我的回答並不滿意。有人可以向我解釋生命週期嗎?ASP.NET頁面生命週期解釋
回答
我認爲微軟已經做到了這一點。我只是總結他們的總結,拉出每個事件的最重要的部分。
我推薦本頁從MSDN:
答案已經被他人發佈。只是分享快捷鍵代碼來記住我在下面發佈的asp.net生命週期階段。
R-SIL-VPRU
- 請求
- 開始
- 初始化
- 負載
- 驗證
- 後回處理
- 渲染
卸載
PreInit:
您可以:
檢查IsPostBack屬性,以確定這是否是第一次頁面正在處理中。 創建或重新創建動態控件。 動態設置主頁面。 動態設置主題屬性。 讀取或設置配置文件屬性值。 如果請求回發:
控件的值尚未從視圖狀態恢復。 如果您在此階段設置了控件屬性,則其值可能會在下一個事件中被覆蓋。 Init:
在單個控件的Init事件首先發生時,稍後會發生Page的Init事件。 此事件用於初始化控件屬性。 InitComplete:
在此事件中打開了ViewState的跟蹤。 在此事件中對ViewState所做的任何更改都會在下一次回發之後持續存在。 PRELOAD:
此事件處理所附帶該請求的回發數據。 加載:
在此事件中,Page對象在頁面對象本身上調用OnLoad方法,隨後調用控件的OnLoad方法。 因此,單個控件的Load事件發生在頁面的Load事件之後。 ControlEvents:
此事件用於處理特定控件事件,如Button控件的Click事件或TextBox控件的TextChanged事件。 在回傳的情況下:
如果頁面包含驗證器控件,則Page.IsValid屬性和控件驗證發生在單個控件事件觸發之前。 LoadComplete:
此事件發生在事件處理階段之後。 此事件用於加載頁面上所有其他控件等任務。 預渲染:
在這種情況下頁面的PreRender事件被稱爲第一,後來爲了孩子的控制。 用法:
此方法用於對頁面上的控件進行最終更改,如分配DataSourceId和調用DataBind方法。 PreRenderComplete:
完成每個控件的屬性在PreRender之後引發此事件。 SaveStateComplete:
在爲頁面和所有控件保存控件狀態和視圖狀態之後引發此操作。 RenderComplete:
頁面對象調用在其上存在的頁面上的每個控制此方法。 此方法寫入控件的標記以將其發送到瀏覽器。 Unload:
爲每個控件然後爲Page對象引發此事件。 用法:
使用此事件在最後清理工作的控制,如關閉打開的數據庫連接,關閉打開的文件等
ASP.Net Page life cycle overview
當一個ASP.Net頁面運行時,頁面經歷一個生命週期,其中ir執行一系列處理步驟。這些包括
- 初始化
- 實例化控制
- Restroring和維護國家
- 運行事件處理程序代碼,並
- 渲染
爲什麼我們需要學習ASP.Net頁生命週期?
瞭解頁面生命週期對您而言非常重要,以便您可以在適當的生命週期階段編寫代碼以獲得所需的效果。
如果您開發自定義控件,您必須熟悉tha頁面生命週期才能正確初始化控件,填充控件行爲代碼。控件的生命週期基於頁面生命週期,頁面引發了許多您需要在自定義控件中處理的事件。
常規頁面生命週期statges:
生命週期的某些部分,當一個頁面被作爲回傳處理纔會發生。對於回發,頁面生命週期在部分回發期間(如當您使用更新面板控件時)與完整頁面回發期間相同。
- ,頁面請求
- 開始
- 初始化
- 負載
- 回發事件處理
- 渲染
- 卸載
1)。頁面請求:
頁面請求發生在頁面生命週期開始之前。當用戶請求頁面時,ASP.Net將確定是否需要分析和編譯頁面(因此開始pge的生命週期),或者是否可以在不運行頁面的情況下發送緩存版本的頁面作爲響應。
Read complete article on "ASP.Net Page life cycle overview" here.
Partial Class _Default
Inherits System.Web.UI.Page
Dim str As String
Protected Sub Page_Disposed(sender As Object, e As System.EventArgs) Handles Me.Disposed
str += "PAGE DISPOSED" & "<br />"
End Sub
Protected Sub Page_Error(sender As Object, e As System.EventArgs) Handles Me.Error
str += "PAGE ERROR " & "<br />"
End Sub
Protected Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
str += "PAGE INIT " & "<br />"
End Sub
Protected Sub Page_InitComplete(sender As Object, e As System.EventArgs) Handles Me.InitComplete
str += "INIT Complte " & "<br />"
End Sub
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
str += "PAGE LOAD " & "<br />"
End Sub
Protected Sub Page_LoadComplete(sender As Object, e As System.EventArgs) Handles Me.LoadComplete
str += "PAGE LOAD Complete " & "<br />"
End Sub
Protected Sub Page_PreInit(sender As Object, e As System.EventArgs) Handles Me.PreInit
str = ""
str += "PAGE PRE INIT" & "<br />"
End Sub
Protected Sub Page_PreLoad(sender As Object, e As System.EventArgs) Handles Me.PreLoad
str += "PAGE PRE LOAD " & "<br />"
End Sub
Protected Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender
str += "PAGE PRE RENDER " & "<br />"
End Sub
Protected Sub Page_PreRenderComplete(sender As Object, e As System.EventArgs) Handles Me.PreRenderComplete
str += "PAGE PRE RENDER COMPLETE " & "<br />"
End Sub
Protected Sub Page_SaveStateComplete(sender As Object, e As System.EventArgs) Handles Me.SaveStateComplete
str += "PAGE SAVE STATE COMPLTE " & "<br />"
lbl.Text = str
End Sub
Protected Sub Page_Unload(sender As Object, e As System.EventArgs) Handles Me.Unload
'Response.Write("PAGE UN LOAD\n")
End Sub
End Class
有在ASP.NET頁面生命週期10個事件和順序是: - 初始化,加載視圖狀態,PostBackdata,加載,驗證,事件,預渲染,保存查看狀態,渲染和卸載。
下面是ASP.NET頁面生命週期的圖片視圖,該事件中預期使用哪種代碼。我建議你閱讀這篇關於ASP.NET Page life cycle的文章,詳細解釋所有10個事件以及何時使用它們。
- 1. asp.net頁面生命週期
- 2. ASP.net頁面生命週期
- 3. asp.net頁面生命週期
- 4. asp.net頁面生命週期解釋和示例
- 5. ASP.NET應用程序生命週期 - 非頁面生命週期
- 6. Asp.net MVC頁面生命週期
- 7. ASP.NET會話和頁面生命週期
- 8. ASP.net頁面生命週期問題
- 9. Asp.net頁面生命週期錯誤,
- 10. 問題與頁面生命週期(asp.net)
- 11. ASP.NET頁面生命週期問題
- 12. Razor頁面生命週期在ASP.NET MVC
- 13. HTTPModules和Global.asax - ASP.NET頁面生命週期
- 14. asp.net頁面生命週期問題
- 15. 這是如何解釋ASP.NET頁生命週期?
- 16. UWP頁面生命週期
- 17. 生命週期的頁面
- 18. HTML頁面生命週期
- 19. asp.net的MVC頁生命週期事件
- 20. 任何人都可以解釋ASP.NET網頁生命週期? (剃刀語法)
- 21. 頁面生命週期問題
- 22. MVC4和頁面生命週期?
- 23. 頁面生命週期讓我困惑?
- 24. xamarin.forms頁面生命週期事件
- 25. 頁面/控件生命週期
- 26. Asp.Net MVC生命週期
- 27. ASP.NET MVC ViewPage生命週期
- 28. ASP.NET生命週期開始
- 29. ASP.NET HttpApplication生命週期
- 30. asp.net頁面生命週期事件的變化
好的視覺效果。我可以向管理層展示這一點,以幫助他們瞭解我想解釋由於意大利麪條代碼導致多次訪問數據庫的原因。 – JoshYates1980