2010-11-09 111 views
5

是否有任何理由使用非标准的HTML控件,而不是asp.net控件(输入类型=文本,输入类型=复选框)(ASP:TextBox中,ASP:复选框),以提高性能?ASP.NET - 提高性能

回答

1

按照一贯的性能优化:这要看情况。在你的项目中测试它,看看它是否有任何不同。

5

恕我直言,这将是一个微型优化。你会获得成绩,但不会引人注意。另一方面,你将失去服务器控件提供的大部分灵活性。

您可以尝试通过禁用它不需要它的控制,以减少ViewState的大小。这将减少生成的页面的大小并提高性能。

4

的ASP.NET用户控件都将具有与其相关的ViewState的,除非你明确地设置

EnableViewState="False" 

因此,如果你有大量的控制,你会臃肿基础页面的大小。作为一般规则,请使用满足您的需求的东西,而不是其他东西。

  • 您是否需要在代码隐藏中访问用户控件?
  • 您是否需要控制来保持后期支付等方面的价值?

在大多数情况下,它不会产生任何影响,但如果不需要这些功能,则可以保持页面清洁。

1

另外.net 4.0中使用服务器控件的另一个控制消失了,因为您可以将ClientIDMode设置为Static,这将使您可以完全控制控件上的ID。以前只使用一个标准textboxbutton(不viewstate)仍然会呈现的,因为命名容器工作的方式疯狂的非可读的ID。那些日子已经结束了,虽然:)

记住你三个选项:

  1. 使用普通的HTML无法在服务器上被引用。
  2. 添加runat="server"到现有的HTML标签(即),你就可以访问它作为HtmlControl
  3. 使用asp.net标签(<asp:* runat="server" />

选项3的缺点是,你总是不知道什么显示的HTML标记将会和你有过不那么控制。我个人只使用选项3进行更高级的控制,如按钮()和第三方控件。对于普通的HTML标记,我需要我宁愿选择2

关于业绩我主要看的渲染输出,多多余的东西,如何呈现给客户和这样的服务器上的参考。使用其中一种或另一种方法的服务器CPU时间我认为是次要的,与ASP.Net已有的不同缓存技术相比。