ASP.NET 用户控件性能增强

Posted

技术标签:

【中文标题】ASP.NET 用户控件性能增强【英文标题】:ASP.NET User control performance enhancement 【发布时间】:2012-04-10 07:24:06 【问题描述】:

我有一个 ASP.NET 用户控件...由一堆业务工作流定义的单选按钮组成。 取决于所选的初始选项集: 1) 更多单选按钮选项作为树控件的一部分加载 2) 根据选择的选项 - 依次动态加载其他 5 个 ASP.NET 用户控件之一。 在这些转换之间存在回发和页面重新加载。

哪些性能增强选项可以应用于此遗留代码?

【问题讨论】:

您是否从数据库中获取数据以使用户控件必须动态加载? 我们需要查看一些代码才能提供有根据的答案。缓存是否是一个选项取决于数据。如果您还没有,按需加载节点可能会提高性能。 它实际上在哪里损害了性能?击中 DB 所需的时间更多?频繁回发?很多服务电话? 【参考方案1】:

如果页面的某些部分需要经常与服务器交互,则使用 ASP.NET Ajax 可能会有所帮助。然而,根据我的经验,ASP.NET Ajax 在低延迟交互方面没有兑现 Ajax 的承诺,因为 ViewState 膨胀伴随所有合理复杂的 ASP.NET 页面。

我发现 Scott Mitchell 在 Persisting Page State 上的文章是一个很好的资源,可以帮助您摆脱 ASP.NET Web 表单中的大量 ViewState。我在生产系统上使用了他的 FileSystemPageStatePersister,效果很好,但是,该方法与 ASP.NET Ajax 不兼容,并且可能无法很好地扩展到网络农场。

【讨论】:

以上是关于ASP.NET 用户控件性能增强的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET中使用TreeView控件

ASP.NET用户自定义控件

ASP.NET,用户控件和 ViewState 丢失了正确的数据,尝试进入用户控件事件

用户控件和 asp.net mvc

ASP.NET 用户控件中的 Javascript 函数

asp.net 动态添加多个用户控件