減少ASP.NET運行時的工作

來源:互聯網
上載者:User

在底層,.NET和ASP.NET基礎結構為了讓開發的工作更輕鬆,做了大量的基礎工作。雖然這個體繫結構作為一個黑盒很不錯,但有時瞭解啟動並執行實現細節是很有益的,可以有效地使用運行時獲得效能上的優勢。

      1、檢視狀態的最佳化

      可以從不同的粒度控制網站的檢視狀態:在web.config設定EnableViewState為false禁用所有頁面的ViewState,Page的EnableViewState屬性繼承web.config的設定,如果要在單獨的頁面可以設定EnableViewState。另外可以單獨設定控制項的EnableViewState。

     web.config:  <pages enableViewState="false"/>
     page:<%@ Page Language="C#" CodeBehind="Default.aspx.cs" Inherits="Default" EnableViewState="false"%>
     控制項:<asp:Label ID="lbInfo" runat="server" EnableViewState="false" />

     2、盡量減少伺服器控制項的數量

     頁面上伺服器端的控制項應該保持最低的數量上,伺服器端的控制項不僅產生檢視狀態,它們也需要額外的運行時處理來綁定到成員變數,呈現,然後卸載。能不用伺服器控制項的盡量不用。

     3、工作階段狀態的考慮

      在建立一個Web應用程式是一個重大的問題就是頁面請求直接維護狀態,因為http請求時無狀態的。例如,知道客戶在購物車中放置了什麼產品。有很多機制可以配合使用以取得狀態的持久性:cookies,檢視狀態、QueryString,Session。

      ASP.NET提供三種不同的工作階段狀態提供者(In-Proc、狀態伺服器、資料庫),極大地提高了會話功能。進程間工作階段狀態提供者是這三者中最快的,狀態伺服器雖然不如進程間的快,但可以在多個伺服器器直接共用工作階段狀態。資料庫儲存時最健壯的但最慢。

      無論使用哪種工作階段狀態提供者,都不要濫用會話功能,儲存大量的資料或對象,“大量”的定義將取決於需要支援的使用者的數量和應用程式的硬體。如果在有些頁面不使用Session可以禁用頁面的Session,設定EnableSessionState為False,也可以稍稍減少頁面出來的開銷。

     4、把異常減到最少

     異常是通知程式執行期間發生的錯誤的一個非常有用的機制。和傳回碼不同,程式不能忽略異常——它們將會改變程式的執行流。在效能和記憶體都很關鍵的應用程式中經常避開以免額外的開銷。在.NET運行時的託管環境中,用try和catch設定異常處理代碼只對效能有可以忽略不計的影響,但如果有拋出異常效能的損失就比較大。

     5、使用早期繫結

     前期綁定是在編譯的時候就確定了要繫結資料,前期綁定如果失敗,會在編譯時間報編譯錯誤,可以避免在運行時編譯錯誤。而後期綁定是在啟動並執行時候才填充資料,後期綁定失敗只有在運行時的時候才發生。www.126fm.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.