【发布时间】:2017-02-20 18:04:00
【问题描述】:
我正在使用 ajax 在我的控制器中调用 POST 方法。此方法平均运行 15 到 20 秒。
我在该调用中使用 aync false 是因为我需要等待答案才能知道该走哪条路。但是,当我使用 async 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()) {
...
}
【问题讨论】:
标签: ajax asp.net-mvc