asp.net頁面生命週期之頁面的終結階段

來源:互聯網
上載者:User

標籤:pos   開發   儲存   保護   沒有   編程方式   應用程式   狀態   遞迴調用   

處理過回傳事件之後,頁面便為瀏覽器產生輸出做好了準備。呈現階段分為兩部分:預呈現和標記產生。預呈現這個子階段有兩個事件表徵,分別為:預先處理和投遞處理。

PreRender事件

通過處理該事件,頁面和控制項能夠進行產生輸出前的不論什麼更改。頁面會首先引發自己的PreRender事件。然後按遞迴方式引發全部的子控制項。注意,這時的頁面已確保其全部子控制項都被建立。

對於群組控制項來說。該階段尤為重要。

PreRenderComplete事件

因為全部子控制項的PreRender事件會以遞迴方式逐一被調用,因而頁面設計者無法知道預呈現階段是否已經完畢。為此,asp.net2.0版本號碼引入了一個僅僅針對頁面的新事件。即PreRenderComplete事件。

SaveStateComplete事件

在每一個控制項被呈現輸出,為頁面產生標記前的一段時間裡。要將當前頁面的狀態儲存在檢視狀態介質中。

值得一提的是,在該點之後對狀態做的不論什麼更改可能會被呈現,但不會被儲存,且在下一次回傳時無法獲得恢複。頁面狀態儲存是一個遞迴的過程,頁面處理常式會遍曆整個頁面樹,逐一調用每一個控制項的SaveViewState方法。包含頁面自身的。

SaveViewState是受保護的虛擬方法(能夠重寫),負責儲存當期控制項的ViewState字典內容。

還有還有一種狀態類型。即所謂的“控制項狀態”,控制項狀態是一種私人的狀態。不受應用程式控制項支配。換句話說,控制項的控制項狀態不可以像檢視狀態一樣。以編程方式被禁用。控制項狀態在此時也會被儲存。

他是還有一種狀態狀態儲存機制,與檢視狀態類似,其資料也可以用於維護頁間回傳,但控制項狀態的目的是,維護控制項的必要資訊,以便使其正常工作。也就是說。具有狀態行為的屬性資料應儲存在控制項狀態中,而使用者介面屬性資料(如控制項的內容)應儲存在檢視狀態中。

標記的產生

針對瀏覽器的標記產生。會分別由每一個子控制項自己完畢,產生的標記會被儲存到一個緩衝中。有幾個重寫方法會協助開發人員分別標記產生的階段進行控制--開始標籤、主體和結束標籤。

沒有與該階段相關聯的使用者事件。

Unload事件

呈現階段之後會進行一次遞迴調用,引發每一個控制項的Unload事件,最後是頁面自身的。

Unload事件用於在頁面對象被釋放前。運行終於的清理工作。一般的操作作為檔案和資料庫連結的關閉。

注意,卸載通知會在頁面或控制項正要被卸載且尚未被釋放前到大。對於實際的頁面,重寫Page類的Dispose方法。或僅僅處理頁面的Disposed事件,是在它從記憶體中被釋放前做清理工作的最後機會 。頁面處理常式會調用Dispose方法,釋放頁面對象。在對Unload事件處理常式的遞迴調用完成之後,會被馬上引發。

asp.net頁面生命週期之頁面的終結階段

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.