【发布时间】:2016-06-03 01:44:19
【问题描述】:
我有一个类似的功能
function m1(){
$('.loader').show();
var xargs={
type : 'POST',
url : resourceUrls["listUrl"],
data : "sId="+sId,
async:false,
dataType : "text",
success : OnGetJsonCallback,
failure : function(response) {
$(".loader").hide();
}
};
$.ajax(xargs);
}
这里的问题是,加载程序在进行 ajax 调用之前没有显示出来。如果我放置一个正在记录的控制台日志语句。
我进行了一些搜索并了解到同步 AJAX 调用会冻结浏览器。但是它可以显示加载器然后冻结浏览器不是吗?
【问题讨论】:
-
不要使用同步 ajax 调用!!
-
不幸的是,我在这里需要它。
-
为什么需要使用同步而不是异步?
-
.show()是一个异步函数。同步 ajax(矛盾修饰法)在其结束之前阻止它。 -
正如@nordyguy 指出的那样,我只是好奇你为什么需要同步呼叫?如果您告诉我们,我们可以建议您避免使用它。
标签: javascript jquery html ajax