2010-11-09 241 views
5

是否有任何理由使用非標準的HTML控件,而不是asp.net控件(輸入類型=文本,輸入類型=複選框)(ASP:TextBox中,ASP:複選框),以提高性能?ASP.NET - 提高性能

回答

1

按照一貫的性能優化:這要看情況。在你的項目中測試它,看看它是否有任何不同。

5

恕我直言,這將是一個微型優化。你會獲得成績,但不會引人注意。另一方面,你將失去服務器控件提供的大部分靈活性。

您可以嘗試通過禁用它不需要它的控制,以減少ViewState的大小。這將減少生成的頁面的大小並提高性能。

4

的ASP.NET用戶控件都將具有與其相關的ViewState的,除非你明確地設置

EnableViewState="False" 

因此,如果你有大量的控制,你會臃腫基礎頁面的大小。作爲一般規則,請使用滿足您的需求的東西,而不是其他東西。

  • 您是否需要在代碼隱藏中訪問用戶控件?
  • 您是否需要控制來保持後期支付等方面的價值?

在大多數情況下,它不會產生任何影響,但如果不需要這些功能,則可以保持頁面清潔。

1

另外.net 4.0中使用服務器控件的另一個控制消失了,因爲您可以將ClientIDMode設置爲Static,這將使您可以完全控制控件上的ID。以前只使用一個標準textboxbutton(不viewstate)仍然會呈現的,因爲命名容器工作的方式瘋狂的非可讀的ID。那些日子已經結束了,雖然:)

記住你三個選項:

  1. 使用普通的HTML無法在服務器上被引用。
  2. 添加runat="server"到現有的HTML標籤(即),你就可以訪問它作爲HtmlControl
  3. 使用asp.net標籤(<asp:* runat="server" />

選項3的缺點是,你總是不知道什麼顯示的HTML標記將會和你有過不那麼控制。我個人只使用選項3進行更高級的控制,如按鈕()和第三方控件。對於普通的HTML標記,我需要我寧願選擇2

關於業績我主要看的渲染輸出,多多餘的東西,如何呈現給客戶和這樣的服務器上的參考。使用其中一種或另一種方法的服務器CPU時間我認爲是次要的,與ASP.Net已有的不同緩存技術相比。