ASP.NET技巧之提高應(yīng)用程序性能淺析
◆ASP.NET技巧之提高ASP.NET應(yīng)用程序性能應(yīng)用程序性能:即使不使用Visual Studio .NET進(jìn)行編程,使用代碼支持文件也有利于提高應(yīng)用程序的性能
如何提高ASP.NET應(yīng)用程序性能呢?在Web應(yīng)用程序、Web服務(wù)或Web控件等所有的ASP.NET Web工程中,Visual Studio .NET都使用代碼支持文件。代碼支持文件使工程具有更好的組織、模塊性,更適合多人組成的開發(fā)團(tuán)隊(duì)。另外,它還會(huì)帶來性能的提高。
代碼支持文件的內(nèi)容被編譯成一個(gè)組合文件中的類,一般是一個(gè)DLL文件,有時(shí)也可以是EXE文件。該文件駐留在應(yīng)用程序的組合體高速緩沖區(qū)中,在應(yīng)用程序啟動(dòng)時(shí),可以立即得到它。
如果代碼是包含在﹤SCRIPT﹥標(biāo)記中或ASPX文件代碼中,它仍然會(huì)被編譯成一個(gè)Web頁類。在這種情況下,每當(dāng)該網(wǎng)頁在應(yīng)用程序?qū)υ捴械谝淮渭虞d時(shí),都需要重新進(jìn)行編譯,被編譯的類就會(huì)駐留在內(nèi)存中。每當(dāng)計(jì)算機(jī)啟動(dòng)、IIS停止、重新啟動(dòng)或者源代碼、配置文件改變時(shí),該文件必須重新編譯。盡管不大,但這樣引起的性能損耗也是相當(dāng)可觀的。
◆ASP.NET技巧之提高ASP.NET應(yīng)用程序性能應(yīng)用程序性能:盡量減少表單回送
每當(dāng)點(diǎn)擊Web網(wǎng)頁上的Button、LinkButton或ImageButton控件時(shí),表單就會(huì)被發(fā)送到服務(wù)器上。如果控件的AutoPostBack屬性被設(shè)置為true,如果CheckBox、CheckBoxList等控件的狀態(tài)被改變后,也會(huì)使表單會(huì)發(fā)送回服務(wù)器。
每次當(dāng)表單被發(fā)送回服務(wù)器,就會(huì)被重新加載,啟動(dòng)Page_Load事件,執(zhí)行Page_Load事件處理程序中的所有代碼。把網(wǎng)頁的初始化代碼放在這里是最合適不過的了。我們經(jīng)常會(huì)希望在每次加載網(wǎng)頁時(shí)執(zhí)行一些代碼,而希望只有在網(wǎng)頁第一次加載時(shí)執(zhí)行另一些代碼,甚至希望一些代碼在除首次加載外的每次加載時(shí)執(zhí)行。
可以利用IsPostBack特性來完成這一功能。在網(wǎng)頁第一次加載時(shí),該屬性的值是false。如果網(wǎng)頁因回送而被重新加載,IsPostBack屬性的值就會(huì)被設(shè)置為true。通過測(cè)試,可以在任意時(shí)候執(zhí)行指定的代碼。下面是相關(guān)的C#代碼:
- protected void Page_Load(Object sender, EventArgs e)
- {
- // 網(wǎng)頁每次加載時(shí),執(zhí)行的一些操作
- if (!IsPostBack)
- {
- // 網(wǎng)頁第一次加載時(shí)執(zhí)行的操作
- }
- else
- {
- // 回送時(shí)執(zhí)行的操作
- }
- // 網(wǎng)頁每次加載時(shí)執(zhí)行的操作
- }
我們希望盡量不引起回送(每次回送都會(huì)要求服務(wù)器進(jìn)行一系列的操作),即使引起回送后。也希望能夠執(zhí)行盡量少的操作。大規(guī)模、浪費(fèi)時(shí)間的操作(例如數(shù)據(jù)庫查找)尤其應(yīng)當(dāng)避免,因?yàn)樗鼈兡軌蜓娱L(zhǎng)應(yīng)用程序的響應(yīng)時(shí)間。
ASP.NET技巧之提高ASP.NET應(yīng)用程序性能就向你介紹到這里,希望對(duì)你有所幫助。
【編輯推薦】


















