【问题标题】:"Please wait, loading" alert on button click单击按钮时出现“请稍候,正在加载”警报
【发布时间】:2013-05-10 13:52:50
【问题描述】:

我有一个按钮——当它被点击时,会出现一个警告,提示输入,用户输入数据后,数据被发送到服务器,处理,结果出来。这可以持续长达 30 秒 - 1 分钟,因为我必须处理大量数据,所以我需要在服务器端作业运行时显示“正在加载,请稍候”警报,所以用户不会认为事情不正常。

谁能给点建议?
我对 javascript 和 jquery 很陌生。我感觉这必须用 ajax 来完成,但我真的不知道怎么做。

【问题讨论】:

  • 我们不知道你在这里使用什么。 whathaveyoutried.com
  • 正如我所说,我是 javascript 和 Jquery 的新手,我一直在寻找有用的东西——但直到现在我才真正找到任何东西

标签: javascript jquery ajax client alert


【解决方案1】:

我认为这里已经提出了同样的问题 - How to display a "busy" indicator with jQuery? 并提供了经过验证的代码答案。

【讨论】:

  • 有没有办法单独设置而不是全局设置并单独删除?这是否还会影响来自其他文件的 ajax 调用,而不是使用 ajaxSetup 的文件?
  • 如果您的场景是在某些情况下调用一个 ajax 请求来获得指示符,而在其他情况下调用它时没有指示符,我会在请求设置指示符并使用承诺之前建议您 -什么时候。请看一下-api.jquery.com/jQuery.when
【解决方案2】:

您需要一个名为 Block UI 的 Jquery 插件 http://www.malsup.com/jquery/block/

源代码和工作演示可以在

找到

http://www.malsup.com/jquery/block/#page

如果你想为独立的 ajax 做的话,根据评论 您可以在 Ajax 调用的成功或错误处理程序中解除阻塞...假设

$.ajax({
     url: "test.html", 
     cache: false, 
     beforeSend: function ( xhr ) {
        $.blockUI({ overlayCSS: { backgroundColor: '#00f' } });
     }
}).done(function( html ) {
     // Do your work 
     $.unblockUI();
 });

【讨论】:

  • 看起来不错,但如果我不想阻止所有 ajax 请求,我怎么知道何时解除阻止?
  • 你可以在 Ajax 调用的成功或错误处理程序中解除阻塞...假设.ajax({ url: "test.html", cache: false }).done(function( html ) { // Do your work // Unblock });
猜你喜欢
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 2021-06-21
相关资源
最近更新 更多