ASP.NET页面中的HTML标签和控件?

时间:2012-08-15 16:34:28

标签: asp.net html client

这是我一直想知道的一般问题。我在ASP.NET中编写了很多页面,因此我的所有控件都有标签开始<asp:,并包含runat="server",这意味着它们是服务器端控件。我想知道的是,当它们不需要服务器端时,使用客户端控件而不是服务器端控件是否有任何优势。

例如,而不是:

<asp:Label ID="lbl" runat="server" Text="This is a label" CssClass="labelclass" />

以任何方式(例如,表现方面)改为使用:

是否有利
<label class="labelclass">This is a label</label>

4 个答案:

答案 0 :(得分:2)

仅在没有意图修改或访问服务器端的标签值时。使用直接HTML会稍微快一些,因为在这种情况下,ASP.NET不必花时间来解析服务器控件来生成任何内容。

答案 1 :(得分:2)

如果它们不需要是服务器端控件,请使用客户端控件。这将使渲染更快,因为转换的代码更少。

如果我要在我的代码隐藏文件中以某种方式引用控件,我通常只使用服务器端控件。

在网站说明中,值得一提的是,ASP.NET Label网页控件呈现为<span>元素,而不是<label>,除非AssociatedControlId property is used

答案 2 :(得分:1)

如果我们使用客户端控制而不是服务器控制,肯定会有性能提升,因为服务器控件由asp服务器解析并且它为它生成html,因此它是一个开销。

它不是关于性能有多大,但肯定存在性能差异。

只有在必须在服务器端修改服务器控件时才应使用它们。

答案 3 :(得分:0)

除了必须呈现服务器端控件的服务器之外,它们还需要关联的ViewState才能在客户端和服务器之间来回ping。这会导致更大的请求,更重的负载以及更长的页面加载时间。