【发布时间】:2017-07-17 23:14:00
【问题描述】:
当给定的 AJAX 请求正在进行时,我需要显示一个带有消息的微调器,并且应该保持在那里直到调用完成。我根本不关心调用的返回状态,因为我稍后会处理它(使用相同的代码),所以 404、500、200 或任何其他状态都是有效的。
目前我是这样处理的:
$(document).bind("ajaxSend", function () {
load_start('Please wait, we are processing data...');
}).bind("ajaxComplete", function () {
load_end();
});
在上述情况下,出于某种原因(可能是因为 here 解释了 ajaxComplete 与 ajaxStop 之间的区别 - 意思是 ajaxComplete 表示 AJAX 调用已成功启动)调用之前的微调器停止是完成,因为我看到它只是在 Chrome 开发者工具栏上运行。
然后用户尝试再次单击相同的按钮,因为在页面上看不到任何内容,并且他们不会去开发工具栏查看 AJAX 调用是否仍在执行。
我以前也是这样的:
$.ajax({
...
}).beforeSend(function () {
load_start('Please wait, we are processing data...');
}).always(function(){
load_end();
});
但我遇到了同样的问题。处理这个问题的正确方法是什么?如果有任何插件,我需要它随时推荐。
【问题讨论】:
-
您希望它用于所有通话吗?或任何特定的电话?
-
@KoushikChatterjee 应该适用于所有这些,上面的代码意味着适用于一个特定的调用,我最终会得到很多自定义回调
标签: javascript jquery ajax