【问题标题】:How To Loading Web User Controls Asynchronously如何异步加载 Web 用户控件
【发布时间】:2011-04-11 20:16:01
【问题描述】:

在我的 default.aspx 页面中,我有许多用户控件,它们需要很长时间才能加载。任何人都知道如何使这个页面加载得更快。

【问题讨论】:

  • 请详细说明您的页面是如何构建的以及性能瓶颈。

标签: jquery asp.net asp.net-ajax


【解决方案1】:

确保在初始加载时只加载您需要在页面上显示的信息。任何后续信息都应通过回发或 ajax 加载。

【讨论】:

    【解决方案2】:

    前几天有人问了一些类似的问题我试图回答:

    Panel and User Controls vs load User Controls dynamically

    总结:

    如果您的用户控件都在页面中,但只有单个用户控件可见,您应该延迟加载您的用户控件。这意味着:

    在 UserControl 的 Page_Load 中什么都不做,但只有当控制器(页面)使其可见时。因此,公开函数以加载其数据并在 ascx 中更新其内部 UpdatePanel。然后 - 在从页面调用函数并使控件可见之后 - 让页面更新 UserControl(s) 周围的外部 UpdatePanel。

    这样,用户控件在变得可见之前既不会被渲染也不会被数据绑定,您总是可以直接直接引用它们。

    让他们通过以下方式交流:

    • 页面 > 通过函数/属性的用户控制
    • UserControl > 通过事件页面

    【讨论】:

      【解决方案3】:

      由于默认页面加载非常频繁,您可以尝试输出缓存来提高您网站的性能。您可以将它用于整个页面或加载时间最长的用户控件。只需将以下标签放在页面顶部即可

      <%@ OutputCache Duration="300" VaryByParam="none" %>
      

      持续时间是页面停留在缓存中的时间,以秒为单位。

      要提高您网站的性能,您应该首先分析瓶颈并向我们提供更多信息。性能改进的可能性有很多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-26
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多