【问题标题】:"Please Wait" message using jQuery or AJAX?使用 jQuery 或 AJAX 的“请稍候”消息?
【发布时间】:2011-09-02 20:58:35
【问题描述】:

我正在创建一个企业 Web 模板,用于开发我们所有的 Web 应用程序。由于数据量和数据源的地理距离,我们现有的许多应用程序需要一段时间才能加载,因此用户经常单击相同的按钮和链接两次。

我计划添加一条请稍候消息,以便在页面回发时出现。我认为有两种明显的方法可以做到这一点:


1. AJAX 工具

使用 AJAX UpdatePanel 和进度加载器,我可以轻松地在每次回发时显示一条消息,只需很少的额外代码(如果有的话)。

我对 AJAX 方法的担忧是,因为这是一个非常通用的模板,我必须将整个页面包装在一个更新面板中。从使用 ASP.NET 3.5 AjaxToolKit 的经验来看,更新面板以时髦的方式影响回发和 JavaScript 代码。另外,我认为 UpdatePanel 很重,会增加加载会话或应用程序所需的时间。

2。 jQuery

使用 jQuery,我可以将显示消息的方法绑定到每个 $(':submit').click() {} 事件。该页面将通过在回帖末尾重新加载来自动隐藏消息。

我对 jQuery 方法没有大的顾虑。它需要额外的编码才能与字段验证器一起正常工作。不使用UpdatePanel 也意味着在每次回发时都会重新加载整个页面,这可能不是最好的方法。在“请稍候”消息出现之前,它还必须延迟几秒钟,这样它就不会出现在不需要此类消息的非常小的事件中。


显示请稍候加载中消息的更好方式是什么?我关心的是速度和可靠性,但如果您认为还有其他值得关注的成功衡量标准,请尽管说出来。

【问题讨论】:

  • 如果您计划将 ASP.NET WebForms 用于您的项目并且有时间限制,请使用 UpdatePanel。否则,jQuery 是更好的选择。

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


【解决方案1】:

绝对是#2。添加UpdatePanel 是一大堆蠕虫,如果您还没有在给定页面上使用它们,则会增加很多开销。

使用 jQuery 执行此操作所涉及的代码很简单。有一个不错的小插件叫做blockui,可以用来渲染效果和禁用一个区域的所有控件。没有插件也不是很难做到这一点,但为什么要重新发明呢?

【讨论】:

    【解决方案2】:

    如果您使用的是 jquery,请使用 ajaxStart / ajaxStop

    【讨论】:

    • 他说问题是 POST 事件后的延迟,我认为这不会解决问题。
    【解决方案3】:

    使用 UpdatePanel,有一个 UpdatePanelProgress 控件可以向用户显示进度状态消息。使用 JQuery,您可以在单击按钮时显示带有请稍候消息的元素,并将通用处理程序附加到 ajaxComplete,当 AJAX 请求完成时会触发此回调,然后您可以将其隐藏。

    HTH。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 2012-09-12
      • 2022-08-16
      • 2016-06-17
      • 1970-01-01
      • 2011-05-12
      • 2012-05-30
      相关资源
      最近更新 更多