我想知道的是:
<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是有原因的,但是我们不需要在这里讨论其他问题。但是,我没有找到任何解决性能问题的方法。
发布于 2015-10-19 17:56:10
性能差别很小,但情况正好相反--我可以想象CssClass可能比class快一点。
要理解为什么会这样,需要有一个视图状态跟踪的概念。我不会在这里详细介绍所有细节,但我将参考关于视图状态的经典文章。请读一读,它太棒了!
不过,简单地说,ViewState跟踪允许为控件属性节省一些费用,这些属性在页面生命周期期间从初始值更改。CssClass是由ViewState备份的,而Attributes集合( class所在的地方)很可能不是(我在这里不能百分之百肯定,需要检查源代码)。
就渲染而言,不太可能有任何不同。CssClass直接转换为html class,而class则被当作Attributes集合的成员处理。不存在将控件标记直接转换为html的情况,所述的每一种方式都会导致一定数量的呈现处理。
https://stackoverflow.com/questions/33220538
复制相似问题