2015-10-19 101 views
0

我想了解一下性能:類比CssClass更快嗎?

<asp:TextBox runat="server" class="someCssClass"></asp:TextBox>

<asp:TextBox runat="server" CssClass="someCssClass"></asp:TextBox>

我的猜測是,classCssClass更快,因爲.NET可能沒有做任何處理class。另一方面,它需要與CssClass做一些工作,當它呈現時變成class

因此,其實我有幾個問題:

  • 是否有性能差異?
  • 如果是這樣,它有意義嗎?
  • 也許真正的問題應該是......如果你不需要在代碼中參考CssClass,那麼只需使用class就可以了,所以你不要讓.net做任何不必要的工作?

注:顯然,有理由使用CssClass,但他們在其他問題中解決,我們不需要在這裏進入。但是,我沒有發現任何解決性能問題的方法。

+1

當你開始擔心在_attribute_級別的性能時,你可能會分析錯誤的東西...... –

+0

不要擔心性能,因爲我想知道是否有任何理由使用'CssClass'如果我不需要它。做到這一點很容易,所以我正在尋找決勝盤。 –

回答

1

有一個很小的性能差異,但它是相反的 - 我會想象CssClass可能會比class快一點。

爲了理解它的原因,我們需要有一個視圖狀態跟蹤的概念。我不會在這裏詳述所有的細節,但會參考a classic article about the view state。請閱讀,這真棒!

簡而言之,ViewState跟蹤允許爲ASP.NET節省一些控制屬性,這些屬性在頁面生命週期中從初始值更改。 CssClass由ViewState備份,而Attributes集合,其中class去,最有可能不是(我不是100%確定在這裏,需要檢查來源)。

就渲染而言,不可能有任何區別。 CssClass被直接翻譯爲html class,而class正在作爲Attributes集合的成員之一處理。沒有把控制標記直接翻譯成html的東西,每種提到的方法都會導致一定量的渲染處理。