2015-03-31 56 views
-1

我已经使用ASP.MVC创建了多屏幕方法 为此,我使用单视图和多div的概念(每个div都是每个屏幕)。当ajax异步设置为false时显示微调

当用户点击一个/上一个按钮,它会验证所有客户端和服务器端验证那么只有它会去下一个/前一屏(指div.show)

对于我使用Ajax调用服务器端调用,结果将是真或假。基于该页面将移动到下一个/上一个屏幕。

为此,我在ajax调用中设置了Async = false。这意味着它将等待服务器响应,否则它不能等待服务器响应,以便它导致下一个/上一个屏幕。

任何人都可以请建议我的解决方案,我们如何显示微调这种方法..? 在这里,我们不应该遵循会话的概念,以便我们选择这个单视图与多个div的方法。

+0

您可以显示一个图像加载器只调用Ajax请求之前,隐藏在阿贾克斯成功方法加载图像。 – 2015-03-31 06:09:17

+0

我只在做那一件。但是当我们可以使用async = false时,它可以冻结ui。所以我们不能显示这个微调。 它可以正常工作,当我们可以设置async = true或删除该属性。 – 2015-03-31 06:27:54

回答

0

同步ajax调用将始终冻结浏览器。你应该使用包装在jQuery的异步调用 $ .when()。then();

$.when(function() { 
    if (validateFunction()) { 
     $.ajax(...); 
    } else { 
     // code the execute on not valid 
    } 
}) 
.then(function() { 
    hideSpinner(); 
}); 

在服务呼叫期间保持微调框处于活动状态。

见文档https://api.jquery.com/jquery.when/

+0

然后它会进入下一个屏幕,即使它有错误验证。我们应该验证所有的服务器验证,然后只有我们必须移动到下一个屏幕 – 2015-04-01 09:18:17

+0

您可以将您的Ajax包装在验证函数中,该验证函数在$ .when()内的有效信息上执行。我将更新我的伪代码 – vbranden 2015-04-01 13:37:06

+0

确定谢谢 – 2015-04-01 13:46:54

相关问题