在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C#/ ASP.NET生命周期
ASP.NET調(diào)試
ASP.NET Web Services
ASP.NET緩存
ASP.NET多線程
ASP.NET面板控件
ASP.NET數(shù)據(jù)綁定
ASP.NET數(shù)據(jù)源
ASP.NET個性化
ASP.Net教程
ASP.NET Ajax控件
ASP.NET生命周期
ASP.NET HTML服務(wù)器
ASP.NET簡介
ASP.NET驗證器
ASP.NET多視圖
ASP.NET網(wǎng)站配置
ASP.NET錯誤管理
ASP.NET自定義控件
ASP.NET LINQ
ASP.NET AdRotator控件
ASP.NET客戶端
ASP.NET文件上傳
ASP.NET服務(wù)器控件
ASP.NET開發(fā)環(huán)境配置
ASP.NET管理狀態(tài)
ASP.NET服務(wù)端
ASP.NET數(shù)據(jù)庫訪問(Access)
ASP.NET基本控件
ASP.NET安全
ASP.NET指令
ASP.NET事件處理
ASP.NET第一個程序
ASP.NET日歷控件

ASP.NET生命周期

ASP.NET生命周期如何指定?如下說明:

  • ASP.NET處理頁面以產(chǎn)生動態(tài)輸出
  • 應(yīng)用程序及其頁面被實例化和處理
  • ASP.NET動態(tài)編譯成頁面

ASP.NET的生命周期可以分為兩組:

  • 應(yīng)用程序生命周期
  • 頁面生命周期

ASP.NET應(yīng)用程序生命周期

應(yīng)用程序生命周期有以下幾個階段:

  • 用戶請求訪問應(yīng)用程序資源,頁面。瀏覽器將此請求發(fā)送到Web服務(wù)器。
  • 統(tǒng)一管道接收第一個請求,并發(fā)生以下事件:
    • ApplicationManager類的一個對象被創(chuàng)建。
    • 創(chuàng)建HostingEnvironment類的一個對象來提供有關(guān)資源的信息。
    • 編譯應(yīng)用程序中的頂級項目。
  • 響應(yīng)(Response)對象被創(chuàng)建。應(yīng)用程序?qū)ο?,?code>HttpContext,HttpRequestHttpResponse被創(chuàng)建和初始化。
  • HttpApplication對象的一個實例被創(chuàng)建并分配給請求。
  • 該請求由HttpApplication類處理,這個類處理請求的不同事件。

ASP.NET頁面生命周期

當(dāng)一個頁面被請求時,它被加載到服務(wù)器內(nèi)存中,進(jìn)行處理并發(fā)送到瀏覽器。 然后它從內(nèi)存中卸載。在這些步驟的每個步驟中,都有可用的方法和事件,這些方法和事件可以根據(jù)應(yīng)用程序的需要進(jìn)行覆蓋。換句話說,您可以編寫自己的代碼來覆蓋默認(rèn)代碼。

Page類創(chuàng)建頁面上所有控件的分層樹。頁面上的所有組件(指令除外)都是此控件樹的一部分??梢酝ㄟ^將trace =“true”添加到頁面指令來查看控件樹。我們將涵蓋頁面指令,并在“指令”和“事件處理”下的跟蹤。

頁面生命周期階段是:

  • 初始化
  • 實例化頁面上的控件
  • 恢復(fù)和維護(hù)狀態(tài)
  • 執(zhí)行事件處理程序代碼
  • 頁面渲染

了解頁面循環(huán)有助于編寫代碼,使頁面生命周期的任何階段都能發(fā)生一些特定的事情。 它還有助于編寫自定義控件并在正確的時間初始化它們,使用視圖狀態(tài)數(shù)據(jù)填充它們的屬性并運行控制行為代碼。

以下是ASP.NET頁面的不同階段:

編號 階段 描述/說明
1 頁面請求 當(dāng)ASP.NET獲得一個頁面請求時,它決定是否解析和編譯該頁面,或者會使用一個緩存的頁面版本。相應(yīng)地發(fā)送響應(yīng)。
2 開始頁面生命周期 在這個階段,RequestResponse對象被設(shè)置。如果請求是舊請求或回發(fā),則頁面的IsPostBack屬性設(shè)置為true。頁面的UICulture屬性也被設(shè)置。
3 頁面初始化 在此階段,通過設(shè)置UniqueID屬性并應(yīng)用主題,頁面上的控件被分配唯一ID。 對于新的請求,加載回發(fā)數(shù)據(jù)并將控件屬性恢復(fù)為視圖狀態(tài)值。
4 頁面加載 在此階段,使用視圖狀態(tài)和控件狀態(tài)值設(shè)置控件屬性。
5 驗證 驗證控件的驗證方法被調(diào)用,并在成功執(zhí)行時,頁面的IsValid屬性設(shè)置為true。
6 回發(fā)事件處理 如果請求是回發(fā)(舊請求),則調(diào)用相關(guān)的事件處理程序。
7 頁面渲染 在這個階段,頁面和所有控件的查看狀態(tài)被保存。頁面為每個控件調(diào)用Render方法,并將渲染的輸出寫入到頁面的Response屬性的OutputStream類中。
8 卸下/Unload 呈現(xiàn)的頁面被發(fā)送到客戶端,并且頁面屬性(例如響應(yīng)和請求)被卸載,并且所有清理完成。

一個請求的頁面在處理完之后,首先被加載到服務(wù)器的內(nèi)存中,并發(fā)送到瀏覽器。 最后它從服務(wù)器內(nèi)存中卸載。 ASP.NET在頁面生命周期的每個階段提供方法和事件,我們可以在應(yīng)用程序中使用。

ASP.NET頁面生命周期事件

在頁面生命周期的每個階段,頁面會引發(fā)一些事件,這些事件可以被編碼。 事件處理程序基本上是一個函數(shù)或子例程,綁定到事件,使用聲明性的屬性,如Onclick或處理句柄。

以下是頁面生命周期事件:

編號 事件 描述
1 PreInit PreInit是頁面生命周期中的第一個事件。它檢查IsPostBack屬性并確定頁面是否是回發(fā)。它設(shè)置主題和主頁面,創(chuàng)建動態(tài)控件,并獲取和設(shè)置配置文件屬性值??梢酝ㄟ^重載OnPreInit方法或創(chuàng)建Page_PreInit處理程序來處理此事件。
2 Init Init事件初始化控件屬性,構(gòu)建控件樹??梢酝ㄟ^重載OnInit方法或創(chuàng)建Page_Init處理程序來處理此事件。
3 InitComplete InitComplete事件允許跟蹤視圖狀態(tài)。所有的控件都打開了視圖狀態(tài)跟蹤。
4 LoadViewState LoadViewState事件允許將視圖狀態(tài)信息加載到控件中。
5 LoadPostData 在這個階段,所有輸入字段的內(nèi)容都是用<form>標(biāo)簽定義的。
6 PreLoad PreLoad發(fā)生在回發(fā)數(shù)據(jù)加載到控件中之前??梢酝ㄟ^重載OnPreLoad方法或創(chuàng)建Page_PreLoad處理程序來處理此事件。
7 Load 首先為頁面引發(fā)Load事件,然后遞歸地為所有子控件引發(fā)Load事件??刂茦渲械目丶褎?chuàng)建。可以通過重載OnLoad方法或創(chuàng)建Page_Load處理程序來處理此事件。
8 LoadComplete 加載過程完成,控制事件處理程序運行,頁面驗證發(fā)生??梢酝ㄟ^重載OnLoadComplete方法或創(chuàng)建Page_LoadComplete處理程序來處理此事件。
9 PreRender PreRender事件在輸出呈現(xiàn)之前發(fā)生。通過處理此事件,頁面和控件可以在輸出呈現(xiàn)之前執(zhí)行任何更新。
10 PreRenderComplete 由于PreRender事件是為所有子控件遞歸觸發(fā)的,因此此事件將確保完成預(yù)渲染階段。
11 SaveStateComplete 頁面上的控制狀態(tài)被保存?zhèn)€性化,控制狀態(tài)和視圖狀態(tài)信息被保存,HTML標(biāo)記被生成。這個階段可以通過重寫Render方法或創(chuàng)建Page_Render處理程序來處理。
12 UnLoad UnLoad階段是頁面生命周期的最后階段。它遞歸地提交所有控件的UnLoad事件,最后為頁面本身。最后的清理工作已經(jīng)完成,所有的資源和引用(如數(shù)據(jù)庫連接)都被釋放了??梢酝ㄟ^修改OnUnLoad方法或創(chuàng)建Page_UnLoad處理程序來處理此事件。

上一篇:ASP.Net教程下一篇:ASP.NET調(diào)試