这是我一直想知道的一般问题。我在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>
答案 0 :(得分:2)
仅在没有意图修改或访问服务器端的标签值时。使用直接HTML会稍微快一些,因为在这种情况下,ASP.NET不必花时间来解析服务器控件来生成任何内容。
答案 1 :(得分:2)
如果它们不需要是服务器端控件,请使用客户端控件。这将使渲染更快,因为转换的代码更少。
如果我要在我的代码隐藏文件中以某种方式引用控件,我通常只使用服务器端控件。
在网站说明中,值得一提的是,ASP.NET Label
网页控件呈现为<span>
元素,而不是<label>
,除非AssociatedControlId
property is used。
答案 2 :(得分:1)
如果我们使用客户端控制而不是服务器控制,肯定会有性能提升,因为服务器控件由asp服务器解析并且它为它生成html,因此它是一个开销。
它不是关于性能有多大,但肯定存在性能差异。
只有在必须在服务器端修改服务器控件时才应使用它们。
答案 3 :(得分:0)
除了必须呈现服务器端控件的服务器之外,它们还需要关联的ViewState
才能在客户端和服务器之间来回ping。这会导致更大的请求,更重的负载以及更长的页面加载时间。