我有一個簡單的ajax調用,正在beforeSend上執行一個函數,並在完成。他們執行得很好,但beforeSend「看似」並沒有執行,直到成功之後。在發送之前有一個「請稍候」通知。如果我在beforeSend中的函數之後休息,那麼它將顯示該通知,然後成功。如果沒有中斷點,那麼它會坐在那裏等待響應,然後等待成功後,我的請稍候通知將出現幾分之一秒。所需的功能是在請求發送後立即顯示通知,以便在等待響應時顯示。jquery ajax 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'的原因? – Dom
這是更新頁面上常用的UI。我不希望用戶在執行時使用這些操作。 – user1134179
'beforeSend'與'async:false'結合沒有任何意義。如果你想保持'async:false',你可以在你的'ajax(...)'之前添加'blockUI'調用,因爲代碼將被同步執行。 – Steve