我想知道:
的表现 <asp:TextBox runat="server" class="someCssClass"></asp:TextBox>
VS
<asp:TextBox runat="server" CssClass="someCssClass"></asp:TextBox>
我的猜测是class
比CssClass
快,因为.net可能与class
无关。另一方面,它必须与CssClass
合作才能在呈现时将其变为class
。
所以我真的有几个问题:
CssClass
,那么仅使用class
更有意义,这样您就不会.net做了不必要的工作吗?注意:显然,有理由使用CssClass
但是我们不需要在其他问题中解决这些问题。但是,我没有找到任何可以解决的问题。
答案 0 :(得分:1)
性能差异很小,但反过来说 - 我认为CssClass可能比class
快一点。
要理解为什么会这样,人们需要有一个视图状态跟踪的概念。我不会在这里详细介绍所有细节,但会引用a classic article about the view state。请阅读它,真棒!
简而言之,ViewState跟踪允许ASP.NET节省一些控件属性,这些属性在页面生命周期中从初始值更改。 ViewState支持CssClass
,而Attributes
收集的class
收集,很可能不是(我不是100%肯定,需要检查来源)。
就渲染而言,没有任何差别。 CssClass
直接翻译为html class
,而class
作为Attributes
集合的成员之一进行处理。没有将控制标记直接转换为html的内容,所提到的每种方式都会导致一些渲染处理。