0

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

例如,而不是:

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

以任何方式(例如性能方面)改为使用:

<label class="labelclass">This is a label</label>

?

4

4 回答 4

2

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

于 2012-08-15T16:37:04.497 回答
2

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

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

在站点注释中,值得一提的是,ASP.NET LabelWeb 控件呈现为一个<span>元素,而不是使用<label>unlessAssociatedControlId属性

于 2012-08-15T16:38:32.890 回答
1

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

它不是关于性能多少,而是肯定存在性能差异。

仅当必须在服务器端进行修改时才应使用服务器控件。

于 2012-08-15T16:40:11.407 回答
0

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

于 2012-08-15T16:59:50.773 回答