我想知道以下各项的性能:

<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的原因,但是在其他问题中已经解决了这些问题,我们无需在这里讨论。但是,我没有找到任何解决性能问题的方法。

最佳答案

性能之间存在微小的差异,但实际上却是相反的-我想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/

10-09 07:52