我有一个简单的AJAX调用,在beforeSend
和complete
上执行一个函数。它们被成功执行,但是beforeSend
似乎直到成功后才被执行。
在beforeSend
中有一个“请等待”通知。如果我在beforeSend
函数后面加上断点,那么它会显示该通知,然后触发成功事件。如果没有断点,则它会在等待响应时一直停留,并在成功后的短暂时间内显示“请等待”通知。
期望的功能是在请求发送后尽快显示通知,以便在等待响应时显示它。
$.ajax({
type : 'POST',
url : url,
async : false,
data : postData,
beforeSend : function (){
$.blockUI({
fadeIn : 0,
fadeOut : 0,
showOverlay : false
});
},
success : function (returnData) {
//stuff
},
error : function (xhr, textStatus, errorThrown) {
//other stuff
},
complete : function (){
$.unblockUI();
}
});
async=false
? - DombeforeSend
在与async:false
组合使用时没有任何意义。如果您想保持async:false
,您可以在ajax(...)
之前添加blockUI
调用,因为代码将以同步方式执行。 - SteveblockUI
调用仍然在success
处理程序之后被执行吗? - Steve