繁体   English   中英

ASP.NET - 提高性能

[英]ASP.NET - improve performance

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

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

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

除非您明确设置,否则ASP.NET用户控件都将具有与它们关联的ViewState

EnableViewState="False"

因此,如果您有大量控件,您将膨胀底层页面的大小。 作为一般规则,使用满足您需求的东西,仅此而已。

  • 您是否需要在代码隐藏中访问用户控件?
  • 你是否需要控制来保持回发后的价值等?

在大多数情况下,它不会有所作为,但如果您不需要这些功能,最好保持页面清洁。

与性能优化一样:它取决于具体情况。 在您的项目中测试它,看看它是否有任何区别。

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

记住你的三个选择是:

  1. 使用常规html,无法在服务器上引用。
  2. runat="server"添加到现有的html-tags(即。)中,您就可以将其作为HtmlControl访问。
  3. 使用asp.net标签( <asp:* runat="server" />

选项3的缺点是你并不总是知道渲染的html标记是什么,你对它的控制较少。 我个人只使用选项3来获得更高级的控件,例如button()和第三方控件。 对于我需要在服务器上引用的普通html标记,我更喜欢选项2。

关于性能,我主要看看渲染的输出,向客户端渲染多少额外的膨胀等等。 与ASP.Net已经提供的不同缓存技术相比,使用一种或另一种方法在服务器上的CPU时间是次要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM