【问题标题】:Loading Items in order and increasing web application speed using asp-ajax使用 asp-ajax 按顺序加载项目并提高 Web 应用程序速度
【发布时间】:2010-07-21 07:26:34
【问题描述】:

我想通过 Asp.net 4.0 版和 ajax 实现以下页面,但我想按顺序加载,例如加载项目 1 和 2 等等。我有容器或 Web 部件,但主要是容器,如简单的 asp.net 面板。我该如何实施?我使用了 updatepanel 并更新了进度,但它并没有像我之前预期的那样工作。

alt text http://www.radansanat.com/mypage.jpg

【问题讨论】:

  • 内容是否来自不同的数据源/远程连接?如果没有,我建议一次性加载所有内容。
  • 不,它们是不同的,它们有不同的加载时间。
  • 这种方法的优点是您可以提高网站的速度,还可以选择哪些内容必须加载得更快,这对于内容繁重的网站很有用。

标签: c# javascript asp.net jquery ajax


【解决方案1】:

这也是另一个有用的网址:

优先处理特定的异步回发: http://msdn.microsoft.com/en-us/library/bb386456.aspx

【讨论】:

    【解决方案2】:

    您可以使用 asp:timer ajax 控件在页面骨架加载后启动所有更新面板的加载。在页面加载 1 毫秒后加载更新面板 1,在 100 毫秒后加载面板 2,在 200 毫秒后加载面板 3,依此类推。因为 UpdatePanel 控件是同步的,所以它们都会按您想要的方式按顺序加载。

    【讨论】:

    • 但计时器无法理解更新面板 1 已完成,它会完全加载内容,所以你怎么能说在 1 毫秒加载面板 2 后加载如何预测更新面板 1 完成并要更新面板 2,他们是同时工作所以我说的顺序是什么意思。我认为好的解决方案是再次实现 updatepanel 类或覆盖添加新的事件处理程序,例如 UpdatePanel_LoadComplete 但我不知道是否可能我只是说使用计时器不是好方法,因为您无法估计负载何时是完成
    • 您无法知道第一个面板何时完成更新,但正如我所说,更新面板控件是同步的,没有 2 个更新面板可以同时更新。我亲身经历过。如果您尝试同时更新 2 个面板,它们将一一更新。这就是重点 - 您可以使用此限制一个接一个地更新一系列面板,顺序而不是一次全部更新。定时器延迟并不那么重要。实际上,您可以尝试在第一个计时器中更新所有面板,您应该实现所有面板的顺序更新。试试看。
    【解决方案3】:

    实际上,关于计时器的流逝并不重要,这并不完全正确。如果所有相关的 UpdatePanel 的所有计时器同时触发,它们就不会只是排队并一次触发一个。实际上,默认情况下,当一个页面同时进行多个异步回发时,最近进行的回发优先。这将取消来自 UpdatePanel 尚未触发的所有其他异步回发。

    我同意解决方案是使用 AJAX 计时器,但您需要在完成之前的 UpdatePanel 完成加载后启动下一个计时器。我自己结合 JavaScript 和 .NET 服务器端代码实现了这一点。以下链接应该可以帮助您完成这项任务:

    处理多个异步回发: http://disturbedbuddha.wordpress.com/2007/12/12/handling-multiple-asynchronous-postbacks/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 2014-10-03
      • 2010-12-01
      相关资源
      最近更新 更多