Javascript 当ajax async设置为false时显示微调器

Javascript 当ajax async设置为false时显示微调器,javascript,jquery,ajax,asp.net-mvc,asp.net-ajax,Javascript,Jquery,Ajax,Asp.net Mvc,Asp.net Ajax,我使用ASP.MVC创建了多屏幕方法 为此,我使用单视图和多个div的概念(每个div就是每个屏幕) 当用户单击下一个/上一个按钮时,它将验证所有客户端和服务器端验证,然后只进入下一个/上一个屏幕(表示div.show) 对于我使用Ajax调用的服务器端调用,结果将是true或false。基于此,页面将移动到下一个/上一个屏幕 为此,我在ajax调用中设置Async=false。这意味着它将等待服务器响应,但不能等待服务器响应,因此它将进入下一个/上一个屏幕 有人能给我推荐一个解决方案吗?我们如

我使用ASP.MVC创建了多屏幕方法 为此,我使用单视图和多个div的概念(每个div就是每个屏幕)

当用户单击下一个/上一个按钮时,它将验证所有客户端和服务器端验证,然后只进入下一个/上一个屏幕(表示div.show)

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

为此,我在ajax调用中设置Async=false。这意味着它将等待服务器响应,但不能等待服务器响应,因此它将进入下一个/上一个屏幕

有人能给我推荐一个解决方案吗?我们如何展示这种方法的微调器?
在这里,我们不应该遵循sessions的概念,因此我们选择了使用multiplediv方法的单一视图

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

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


请参阅文档

您可以在调用ajax请求之前显示一个加载程序映像,并在ajax成功方法中隐藏该加载程序映像。我只做这一个。但是当我们可以使用async=false时,它可以冻结ui。所以我们不能展示那个旋转器。当我们可以设置async=true或删除该属性时,它工作正常。然后它将转到下一个屏幕,即使它有错误验证。我们应该验证所有服务器验证,然后只需转到下一个屏幕。您可以将Ajax封装在验证函数中,该函数根据$中的有效信息执行。when()我将更新我的伪代码
$.when(function() {
    if (validateFunction()) {
        $.ajax(...);
    } else {
        // code the execute on not valid
    }
})
.then(function () {
    hideSpinner();
});