【问题标题】:HTML Labels and Controls in ASP.NET Pages?ASP.NET 页面中的 HTML 标签和控件?
【发布时间】:2012-08-15 16:34:27
【问题描述】:

只是一个我一直想知道的一般性问题。我在 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>

?

【问题讨论】:

    标签: asp.net html client


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      在站点注释中,值得一提的是,ASP.NET Label Web 控件呈现为 &lt;span&gt; 元素,而不是 &lt;label&gt;,除非 AssociatedControlId property is used

      【讨论】:

      • 感谢您提供的附加信息,这真的很有用。
      【解决方案3】:

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

      这与性能多少无关,但肯定存在性能差异。

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-30
          相关资源
          最近更新 更多