0
我使用ajax在我的控制器中調用POST方法。平均而言,此方法運行15到20秒。async ajax call - 顯示加載gif
我在該調用中使用了aync false,因爲我需要等待答案才能知道該走哪條路。但是,當我使用異步假我的加載(gif)沒有顯示。
$(document).ajaxStart(function() {
$('#overlay').show();
});
$(document).ajaxStop(function() {
$('#overlay').hide();
});
什麼是解決這個問題的最好方法?
編輯1
我已執行多次驗證,並要求在控制器的方法保存功能:
function salvarInformacoes(pedidos, ums, callback) {
$.ajax({
url: 'PlanoCortes/SalvarInformacoes',
type: 'POST',
data: {
sglDeposito: $("#ddl-Deposito option:selected").text(),
codUnimetPCP: $('#ddl-Um-sip').val(),
numEtapa: $("#ddl-Operacao").val(),
rotinaUM: $('#chk-Rotina-UM').is(":checked"),
dscEtapa: $("#ddl-Operacao option:selected").text(),
dadosPedidosJson: pedidos,
dadosUMsJson: ums,
corteVirtual: corteVirtual
},
success: callback
});
}
function salvar() {
var resultado = false;
...
salvarInformacoes(JSON.stringify(pedidos), JSON.stringify(ums), myCallback);
function myCallback(retorno) {
if (retorno.success != false) {
...
}
else {
resultado = false;
return;
}
resultado = true;
}
return resultado;
}
...
方法 「myCallBack函數」 以前被稱爲,該函數返回false。通過這種方式,聲明中的代碼下面永遠不會執行:
if (salvar()) {
...
}
感謝您的回答。我正在研究這個帖子。我不明白當我的電話進入循環(for)時我該怎麼辦。我可能沒有異步做到這一點? –
@CarlosHenriqueBiazinEsteves:好吧,既然這裏沒有關於你想要做什麼的信息,我真的不能告訴你如何去做。但對於被問到的問題,答案是您阻止瀏覽器繼續執行,這就是爲什麼它不會繼續執行下一個操作。從一般意義上講,這是一個非常糟糕的設計(這就是爲什麼你遇到過這個問題),不應該放在首位。 – David
我編輯我的帖子,因爲我仍然無法弄清楚如何做到這一點... –