У меня есть простой вызов 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
? - person Dom   schedule 17.04.2013beforeSend
не имеет смысла в сочетании сasync:false
. Если вы хотите сохранитьasync:false
, вы можете просто добавить вызовblockUI
передajax(...)
, так как код все равно будет выполняться синхронно. - person Steve   schedule 17.04.2013blockUI
все еще выполняется после обработчикаsuccess
? - person Steve   schedule 17.04.2013