欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何理解asp.net頁面生命周期-創(chuàng)新互聯(lián)

這篇文章主要講解了“如何理解asp.net頁面生命周期”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何理解asp.net頁面生命周期”吧!

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、南江網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為南江等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

Asp.net是微軟.Net戰(zhàn)略的一個(gè)組成部分。它相對(duì)以前的Asp有了很大的發(fā)展,引入了許多的新機(jī)制。本文就Asp.net頁面的生命周期向大家做一個(gè)初步的介紹,以期能起到指導(dǎo)大家更好、更靈活地操縱Asp.net的作用。當(dāng)一個(gè)獲取網(wǎng)頁的請求(可能是通過用戶提交完成的,也可能是通過超鏈接完成的)被發(fā)送到Web服務(wù)器后,這個(gè)頁面就會(huì)接著運(yùn)行從創(chuàng)建到處理完成的一系列事件。在我們試圖建立Asp.net頁面的時(shí)候,這個(gè)執(zhí)行周期是不必去考慮的,那樣只會(huì)自討苦吃。然而,如果被正確的操縱,一個(gè)頁面的執(zhí)行周期將是一道有效而且功能強(qiáng)大的工具。許多開發(fā)者在編寫Asp.net的頁面以及用戶控件的時(shí)候發(fā)現(xiàn),如果知道整個(gè)過程中發(fā)生了什么以及在什么時(shí)候發(fā)生將對(duì)完成整個(gè)任務(wù)起到很重要的幫助作用。

一.初始化對(duì)象
一個(gè)頁面的控件(以及頁面本身)最初應(yīng)被正確的初始化。通過在你的C#文件的構(gòu)造函數(shù)中聲名所有對(duì)象(如圖1),頁面就知道要?jiǎng)?chuàng)建多少對(duì)象以及它們的類型。一旦你在你的構(gòu)造函數(shù)中聲名了所有的對(duì)象,你就可以通過繼承類、方法、事件或是屬性訪問它們。然而,如果你的一些對(duì)象是在Aspx文件中指定的一些控件,那么這些控件就沒有屬性可言了。同時(shí),通過代碼訪問它們會(huì)產(chǎn)生一些意外的錯(cuò)誤,因?yàn)檫@些控件實(shí)例是沒有一個(gè)確定的創(chuàng)建順序的(如果它們是被一起創(chuàng)建的)。還有,你可以通過OnInit來重載初始化事件。

二.導(dǎo)入Viewstate數(shù)據(jù)
在初始化事件后,所有控件只可以通過它們的ID被引用訪問(因?yàn)檫€沒有相應(yīng)的DOM可使用)。在LoadViewState這個(gè)事件中,所有的控件將獲得它們的第一個(gè)屬性:Viewstate屬性。這個(gè)屬性最終將被返回給服務(wù)器以判斷這個(gè)頁面是已經(jīng)被用戶訪問完畢還是仍然在被用戶所訪問。Viewstate屬性以“名稱/值”對(duì)的字符串方式被保存,它包含了控件的文本以及值等信息。該屬性被存儲(chǔ)在一個(gè)隱藏的<input>控件的值屬性里,在請求頁面時(shí)被傳遞。這種方式比起Asp3.0的維持、判斷頁面狀態(tài)的方式有了很大的進(jìn)步啊。還有,你可以重載LoadViewState事件函數(shù)來對(duì)相應(yīng)的控件進(jìn)行值設(shè)定。

三.用LoadPostData處理Postback數(shù)據(jù)
在頁面創(chuàng)建的這個(gè)階段,服務(wù)器對(duì)頁面上的控件提交的表單數(shù)據(jù)(在Asp.net中稱postback數(shù)據(jù))進(jìn)行處理。當(dāng)一個(gè)頁面提交一個(gè)表單時(shí),框架就在每個(gè)提交了數(shù)據(jù)的控件上執(zhí)行一個(gè)IPostBackDataHandler接口操作。然后頁面執(zhí)行LoadPostData事件,解析頁面,找到每個(gè)執(zhí)行了IpostBackDataHandler接口操作的控件,并用恰當(dāng)?shù)膒ostback數(shù)據(jù)更新這些控件狀態(tài)。Asp.net是通過用NameValue集中的“名稱/值”對(duì)和每個(gè)控件的的ID匹配來實(shí)現(xiàn)這一操作的。所以,在Asp.net的頁面上每個(gè)控件必須有一個(gè)的ID,不可以出現(xiàn)幾個(gè)控件共有ID的情況。即使是用戶自定義的一些控件,框架也會(huì)賦予它們各自的ID的。在LoadPostData事件后,就要執(zhí)行下面的RaisePostDataChanged事件了。

四.導(dǎo)入對(duì)象
在Load事件中,對(duì)象都實(shí)例化了。所有的對(duì)象第一次被布置在DOM頁面(在Asp.net中稱控件樹)里了并且可以通過代碼或是相關(guān)的位置被引用。這樣,對(duì)象就可以很容易的從客戶端獲得諸如寬度、高度、值、可見性等在Html中的屬性值。在Load事件中,當(dāng)然還有像設(shè)置控件屬性等操作的發(fā)生。這個(gè)過程是整個(gè)生命周期中最重要、最主要的,你可以通過調(diào)用OnLoad來重載Load事件,

五.RaisePostBackChanged事件
就像在上面提到的那樣,這個(gè)事件是發(fā)生在所有的控件執(zhí)行了IPostBackDataHandler接口操作并被正確的postback數(shù)據(jù)更新后的。在這個(gè)過程中,每個(gè)控件都被賦予一個(gè)布爾值來標(biāo)志該控件有沒有被更新。然后,Asp.net就在整個(gè)頁面上尋找任何已被更新過的控件并執(zhí)行RaisePostDataChanged事件操作。不過,這個(gè)事件是要在所有的控件都被更新了以及Load事件完成后才進(jìn)行的。這樣就保證了一個(gè)控件在被postback數(shù)據(jù)更新前,別的控件在RaisePostDataChanged事件中是不會(huì)被手動(dòng)改變的。

六.處理客戶端PostBack事件
當(dāng)由postback數(shù)據(jù)在服務(wù)器端引起的事件都完成后,產(chǎn)生postback數(shù)據(jù)的對(duì)象就執(zhí)行RaisePostBackEvent事件操作??墒菚?huì)有這種情況,由于一個(gè)控件狀態(tài)的改變使得它將表單返回給服務(wù)器或是用戶點(diǎn)擊了提交按鈕使得表單返回給服務(wù)器。在這種情況下應(yīng)該有相應(yīng)的處理代碼來體現(xiàn)事件驅(qū)動(dòng)這一面向?qū)ο螅∣OP)編程原則。由于要滿足呈現(xiàn)給瀏覽器的數(shù)據(jù)的精確性要求,在一系列postback事件中RaisePostBackEvent事件是最后發(fā)生的。
在postback過程中改變的控件不應(yīng)在執(zhí)行功能函數(shù)被調(diào)用后更新。也就是說,任何由于一個(gè)預(yù)期的事件而改變的數(shù)據(jù)應(yīng)該在最終的頁面上被反映出來。你可以通過修改RaisePostBackEvent函數(shù)來滿足你的要求,

七.預(yù)先呈遞對(duì)象
可以改變對(duì)象并將改變保存的最后時(shí)刻就是這一步――預(yù)先呈遞對(duì)象。這樣,你可以在這一步對(duì)控件的屬性、控件樹結(jié)構(gòu)等作出最后的修改。同時(shí)還不用考慮Asp.net對(duì)其作出任何改變,因?yàn)榇藭r(shí)已經(jīng)脫離了數(shù)據(jù)庫調(diào)用以及viewstate更新了。在這一步之后,對(duì)對(duì)象的所有修改將最終被確定,不能被保存到頁面的viewstate中了。你可以通過OnPreRender來重載這一步。

八.保存ViewState
所有對(duì)頁面控件的修改完成后viewstate就被保存了。對(duì)像的狀態(tài)數(shù)據(jù)還是保留在隱藏的<input>控件里面,呈現(xiàn)給Html的對(duì)象狀態(tài)數(shù)據(jù)也是從這里取得的。在SaveViewState事件中,其值能被保存到viewstate對(duì)象,然而這時(shí)在頁面上控件的修改卻不能了。你可以用SaveViewState來重載這一步

九.呈遞給Html
運(yùn)用Html創(chuàng)建給瀏覽器輸出的頁面的時(shí)候Render事件就發(fā)生了。在Render事件過程中,頁面調(diào)用其中的對(duì)象將它們呈遞給Html。然后,頁面就可以以Html的形式被用戶的瀏覽器訪問了。當(dāng)Render事件被重載時(shí),開發(fā)者可以編寫自定義的Html代碼使得原先生成的Html都無效而按照新的Html來組織頁面。Render方法將一個(gè)HtmlTextWriter對(duì)象作為參數(shù)并用它將Html在瀏覽器上以網(wǎng)頁的形式顯示。這時(shí)仍然可以做一些修改動(dòng)作,不過它們只是客戶端的一些變化而已了。你可以重載Render事件

十.銷毀對(duì)象
在呈遞給Html完成后,所有的對(duì)象都應(yīng)被銷毀。在Dispose事件中,你應(yīng)該銷毀所有在建立這個(gè)頁面時(shí)創(chuàng)建的對(duì)象。這時(shí),所有的處理已經(jīng)完畢,所以銷毀任何剩下的對(duì)象都是不會(huì)產(chǎn)生錯(cuò)誤的,包括頁面對(duì)象。你可以重載Dispose事件

感謝各位的閱讀,以上就是“如何理解asp.net頁面生命周期”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)如何理解asp.net頁面生命周期這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)頁標(biāo)題:如何理解asp.net頁面生命周期-創(chuàng)新互聯(lián)
文章來源:http://aaarwkj.com/article40/ccdjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、標(biāo)簽優(yōu)化、云服務(wù)器網(wǎng)站設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
精品av一区二区在线| 七月丁香色婷婷婷基地| 免费亚洲一区二区三区| 中文字幕国产精品综合| 日韩人妻熟妇中文字幕| 国产精品水嫩水嫩粉嫩| 欧美大吊视频在线观看| 国产亚洲一区激情小说| 99精品热这里只有精品| 欧美老熟妇精品一区二区| 国产成人色污在线观看| 国产精品一区二区高潮| av国语对白在线观看| 亚洲区一区二区三区精品| 国产一级内射视频免费观看| 国产高潮精品呻吟久久av| 国产三级精品三线在线观看| 精品人妻少妇一区二区三区| 国产在线乱码一区二区| 欧美亚洲av一区二区三区| 日韩传媒在线观看视频| 亚洲成年人黄片在线播放| 日韩欧美亚洲国产一区久久精品| 日韩国产传媒视频在线观看| 黄色亚洲日本欧美在线观看| 国产女主播福利在线播放| av天堂在线观看网站| 人成午夜视频在线播放| 欧美丰满老妇性猛交| 国产在线自拍一区二区| 日韩精品一区二区在线天天狠天| 欧美日韩亚洲精品一区二区三区| 91精品国产高清91久久久久久| 男女视频一区二区三区在线观看| 日本在线人妻一区二区| 亚洲家庭伦理在线观看| 人人妻人人澡人人爽人人dvd| 亭亭丁香激情五月涩久久| 国产精品中文一区二区三区| 免费特黄特黄的欧美大片| 日韩av不卡免费播放|