【发布时间】:2017-08-01 22:50:51
【问题描述】:
我想在制作同步 ajax 时显示一个等待对话框。 我使用智能向导,在一步一步之间进行更改,我必须验证一些数据才能做到这一点,我必须一个接一个地进行 3 个 ajax 调用,完成后我想显示一个等待对话框。这就是我正在做的。
if (indexes.fromStep==1) {
res=false;
var validatorResult = validator.checkAll($("#install_modbus_form"))
if (validatorResult) {
$("#modal_loader").modal()
$.ajax({
type: "post",
url: url1,
async: false,
dataType: "json",
data:{
data
},
success: function(response)
{
if (response.success)
{
$.ajax({
type: "post",
url: url2,
async: false,
dataType: "json",
data:{
data
},
success: function(response)
{
if (response.success)
{
$.ajax({
type: "post",
url: url3,
async: false,
dataType: "json",
data:{
data
},
success: function(response)
{
if (response.success)
{
//make magic here
res=true;
}
},
failure:function()
{
waitingDialog.hide()
res=false
},
error:function(a,b,c) {
waitingDialog.hide()
res=false
}
)
}
},
failure:function()
{
waitingDialog.hide()
res=false
},
error:function(a,b,c) {
waitingDialog.hide()
res=false
}
)
}
},
failure:function()
{
waitingDialog.hide()
res=false
},
error:function(a,b,c) {
waitingDialog.hide()
res=false
}
)
$("#modal_loader").modal('hide')
return res;//if true change step
}
}
我尝试使用 beforeSend 来显示等待对话框,我也尝试使用 setTimeout 但等待对话框不显示,智能向导不前进
希望你能帮忙,我是 jquery 的新手。
抱歉英语不好
【问题讨论】:
-
为什么要使用同步ajax?
-
不使用同步jax的简单解决方案怎么样?改用ajax。无论如何,您都在使用所有必要的回调。
-
顺便说一句,jQuery 中没有
failure回调。只有error。 -
@JoshBeam 我正在使用同步 ajax,因为当我不使用它时,智能向导不会等待 ajax 完成,而是返回 res 的 false 值并且不更改步骤。
-
不支持异步的向导不太聪明……
标签: javascript jquery ajax synchronous smart-wizard