我想知道以下各项的性能:<asp:TextBox runat="server" class="someCssClass"></asp:TextBox>
与<asp:TextBox runat="server" CssClass="someCssClass"></asp:TextBox>
我的猜测是class
比CssClass
快,因为.net可能对class
没有任何作用。另一方面,它必须对CssClass
做一些工作才能在渲染时将其转换为class
。
所以我确实有几个问题:
有性能差异吗?
如果是这样,那么意义重大吗?
也许真正的问题应该是...如果您不需要在代码中引用CssClass
,那么仅使用class
而不让.net做任何不必要的工作会更有意义吗?
注意:显然,有使用CssClass
的原因,但是在其他问题中已经解决了这些问题,我们无需在这里讨论。但是,我没有找到任何解决性能问题的方法。
最佳答案
性能之间存在微小的差异,但实际上却是相反的-我想CssClass可能比class
快一点。
要了解可能的原因,需要了解视图状态跟踪的概念。我不会在这里进行所有详细介绍,但是会引用a classic article about the view state。请阅读它,它很棒!
简而言之,ViewState跟踪可以为ASP.NET节省一些控件属性,这些控件属性在页面生命周期内已从初始值更改。 CssClass
是由ViewState备份的,而Attributes
所在的class
集合很可能不是(我不是100%肯定在这里,需要检查源)。
就渲染而言,没有任何区别。 CssClass
直接翻译为html class
,而class
被作为Attributes
集合的成员之一寻址。没有将控制标记直接转换为html的事情,上述每种方式都会导致一定数量的渲染处理。
关于html - 类比CssClass快吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33220538/