開發高性能的 ASP.NET 應用程序

發表于:2008-05-07來源:作者:點擊數: 標簽:開發NetNETASP高性能
使用本主題中的準則所列出的方法有助于最大程度提高 ASP.NET Web 應用程序的吞吐量。這些準則分為以下部分: 頁面和 服務器 控件處理 狀態管理 數據訪問 Web 應用程序 編碼實踐 頁面和服務器控件處理 下列準則提供了有效使用 ASP.NET 頁面和控件的建議。 避免
使用本主題中的準則所列出的方法有助于最大程度提高 ASP.NET Web 應用程序的吞吐量。這些準則分為以下部分:

  頁面和服務器控件處理

  狀態管理

  數據訪問

  Web 應用程序

  編碼實踐
 
  頁面和服務器控件處理
  下列準則提供了有效使用 ASP.NET 頁面和控件的建議。

  避免到服務器的不必要的往返行程 在某些情況下不必使用 ASP.NET 服務器控件和執行回發事件處理。例如,在 ASP.NET 網頁中驗證用戶輸入經??稍跀祿峤坏椒掌髦霸诳蛻舳诉M行。通常,如果不需要將信息傳遞到服務器以進行驗證或將其寫入數據存儲區,請避免使用導致到服務器的往返行程的代碼,這樣可以提高頁的性能并改善用戶體驗。您也可以不執行整個往返行程,而是使用客戶端回調從服務器中讀取數據。有關詳細信息,請參見在 ASP.NET 網頁中不經過回發而實現客戶端回調。

  如果您開發自定義服務器控件,請考慮讓它們為支持 ECMAScript (JavaScript) 的瀏覽器呈現客戶端代碼。通過以這種方式使用服務器控件,您可以顯著地減少信息被發送到 Web 服務器的次數。有關更多信息,請參見開發自定義 ASP.NET 服務器控件。

  使用 Page 對象的 IsPostBack 屬性來避免對往返行程執行不必要的處理 如果您編寫處理服務器控件回發處理的代碼,有時可能需要代碼僅在首次請求頁時執行,而不是每次回發時都執行。根據該頁是否是響應服務器控件事件生成的,使用 IsPostBack 屬性有條件地執行代碼。 

  只在必要時保存服務器控件視圖狀態 自動視圖狀態管理使服務器控件可以在往返行程中重新填充它們的屬性值,而您不需要編寫任何代碼。但是,因為服務器控件的視圖狀態在隱藏的窗體字段中往返于服務器,所以該功能影響性能。了解在哪些情況下視圖狀態會有所幫助,在哪些情況下它影響頁的性能,這樣是有幫助的。例如,如果您將服務器控件綁定到每個往返行程上的數據,因為控件的值會在數據綁定期間用新值替換,所以保存的視圖狀態沒有用處。在這種情況下,禁用視圖狀態可以節省處理時間并減少頁的大小。

  默認情況下,為所有服務器控件啟用視圖狀態。若要禁用它,請將控件的 EnableViewState 屬性設置為 false,如下面的   DataGrid 服務器控件示例所示:
<asp:datagrid EnableViewState="false" datasource="..." runat="server"/>
  您還可以使用 @ Page 指令禁用整個頁的視圖狀態。當您不從頁回發到服務器時,這將十分有用:
<%@ Page EnableViewState="false" %>
注意
  @ Control 指令中還支持 EnableViewState 屬性以指定是否為用戶控件啟用視圖狀態。
  若要分析服務器控件在頁中使用的視圖狀態的大小,請通過將 trace="true" 屬性包含在 @ Page 指令中啟用對該頁的跟蹤。然后在跟蹤輸出中,查看“控件層次結構”表的“Viewstate”列。有關跟蹤和如何啟用它的信息,請參見 ASP.NET 跟蹤。

  除非有特殊的原因要關閉緩沖,否則使其保持打開狀態 禁用 ASP.NET 網頁的緩沖會導致大量的性能開銷。有關更多信息,請參見 Buffer 屬性。

  使用 Transfer Server 對象或跨頁發送的方法在同一個應用程序中的不同 ASP.NET 頁之間重定向 有關詳細信息,請參見將用戶重定向到另一頁。
狀態管理
  下列準則提供了有效進行狀態管理的建議。

  當不使用會話狀態時禁用它 并不是所有的應用程序或頁都需要具體用戶的會話狀態;您應該在不需要時禁用會話狀態。若要禁用頁的會話狀態,請將 @ Page 指令中的 EnableSessionState 屬性設置為 false,如下面的示例所示:
<%@ Page EnableSessionState="false" %>
注意
  如果頁需要訪問會話變量,但不會創建或修改它們,則將 @ Page 指令中的 EnableSessionState 屬性設置為 ReadOnly。


  還可以禁用 XML Web services 方法的會話狀態。有關更多信息,請參見使用 ASP.NET 和 XML Web 服務客戶端創建的 XML Web 服務。

  若要禁用應用程序的會話狀態,請在應用程序的 Web.config 文件的 SessionState 節中將 Mode 屬性設置為 Off,如下面的示例所示:
<sessionState mode="Off" />

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97