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

时间:2015-03-31 05:59:47

标签: javascript jquery ajax asp.net-mvc asp.net-ajax

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

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

对于服务器端调用我正在使用Ajax调用,结果将为true或false。基于此页面将移至下一个/上一个屏幕。

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

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

1 个答案:

答案 0 :(得分:0)

同步ajax调用将始终冻结浏览器。你应该使用包装在jQuery中的异步调用 $。当(),然后();

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

在服务电话中保持微调器处于活动状态。

请参阅文档https://api.jquery.com/jquery.when/