2015-10-19 56 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的东西,每种提到的方法都会导致一定量的渲染处理。