- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个以下的 ajax 操作,旨在 (1) show spinner gif
在发送 ajax
请求之前,以及在请求完成之后,( 2) 隐藏
gif 和3 显示
适当的警告消息。最后 (4) 重新加载
页面。
代码如下:
$.ajax({
url: rUrl,
data: {
id: rID,
requisitionStatus: rStatus,
comment: rComment
},
type: "POST",
cache: false,
beforeSend: function() {
$("#requisitionStatusDialog").dialog('close');
$('#ajax_loader_my').show();
},
success: function(data, resp) {
var json = data;
var obj = JSON && JSON.parse(json) || $.parseJSON(json);
if (obj.status == "success") {
alert('Success! ' + obj.message);
location.reload();
} else if (obj.status == "error") {
alert('Error!' + obj.message);
}
},
error: function(data, resp) {
$("#updateDialog").dialog('close');
console.log(resp);
},
complete: function() {
$('#ajax_loader_my').hide();
}
});
但在这种情况下,alert
先弹出,而 spinner gif
仍然显示,并且在单击 后
。重新加载
页面好的
我什至尝试在 success
回调中隐藏
gif 而不是使用 complete
:
success: function(data, resp) {
var json = data;
var obj = JSON && JSON.parse(json) || $.parseJSON(json);
if (obj.status == "success") {
$('#ajax_loader_my').hide();
alert('Success! ' + obj.message);
location.reload();
} else if (obj.status == "error") {
alert('Error!' + obj.message);
}
},
两者给出相同的结果。
最佳答案
在隐藏微调器之前弹出警报的原因是成功代码在隐藏微调器的完成之前运行。它重新加载的原因是因为在您发送警报后 location.reload();
检查 $('#ajax_loader_my').hide();实际上隐藏了微调器。在您的 html 中属于或包含微调器的元素必须将其 ID 设置为 ajax_loader_my。
如果您打开 Chrome 或 Firefox 开发工具,您应该能够发送 $('#ajax_loader_my').hide() 并查看会发生什么。
关于javascript - 在ajax回调函数javascript中乱序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55161502/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!