C# 对MVC控制器的angular js async调用不异步

C# 对MVC控制器的angular js async调用不异步,c#,asp.net-mvc,angularjs,asp.net-mvc-4,asp.net-web-api,C#,Asp.net Mvc,Angularjs,Asp.net Mvc 4,Asp.net Web Api,快速概述我们的设置:- 对于前端的MVCWeb应用程序,它将REST请求发送到MVCWebAPI 这一切都很好,但是,我们现在引入了AngularJS,允许我们使用javascript进行双向数据绑定 这是一个非常好的框架,我们已经开始使用ajax$http请求 所以, 在angular中,我们使用$http调用调用RESTWebAPI的MVC控制器,返回数据,在控制器中序列化为JSON,并发送给angularJS请求进行双向数据绑定 我们现在面临的问题是,我们现在一次发出多个HTTP请求,但是

快速概述我们的设置:- 对于前端的MVCWeb应用程序,它将REST请求发送到MVCWebAPI

这一切都很好,但是,我们现在引入了AngularJS,允许我们使用javascript进行双向数据绑定

这是一个非常好的框架,我们已经开始使用ajax$http请求

所以, 在angular中,我们使用$http调用调用RESTWebAPI的MVC控制器,返回数据,在控制器中序列化为JSON,并发送给angularJS请求进行双向数据绑定

我们现在面临的问题是,我们现在一次发出多个HTTP请求,但是,每个请求似乎都在等待前一个请求完成,我们正在努力找出原因? 我们希望所有的请求彼此独立,这样就不会有延迟或等待时间

如果有人能提供任何建议,我们将不胜感激

我希望这一切都有意义

角度代码如下:-

    $scope.LoadResults();
    $scope.GetHistory();
    $scope.GetUserDetails();

 $scope.GetHistory = function () {
  $http.post('/user/GetHistory/', $scope.data).success(function (data, status, headers, config) {
});
}

 $scope.GetUserDetails= function () {
 $http.post('/user/GetUserDetails/1234', $scope.data).success(function (data, status, headers, config) {
});
}


$scope.LoadResults = function () {
    $scope.data = {
        frequency: $scope.frequency,
        direction: $scope.direction,
        view: $scope.view
    };
    var userid = $('#id').val();
    var url = '/user/' + userid + '/GetUserResults/';

    $http.post(url, $scope.data).success(function (data, status, headers, config) {
        if (data.msg != '') {
                        $scope.resultssummarydata = data.aaData;

        }
        else {
            $scope.errors.push(data.error);
        }
    });
}
请注意,如果Patko想将此作为一个答案,他应该得到信任,因为他是真正了解这一点的人(我刚才提供了关闭会话的方法)

尝试将其更改(或添加)到web.config以关闭会话:

ASP.Net中的会话实现非常奇怪。如果来自同一浏览器/用户会话的多个http请求,它将序列化它们并一次处理一个。除此之外,会话实现效率非常低——每个请求都会将整个会话加载到内存中


多年来,ASP.Net会话实现受到了相当广泛的批评——通过谷歌搜索,您可以了解它。

web服务器是否负载过重?如果线程池正在耗尽线程,您可能会看到事情开始排队,而不是立即并行运行。在这种情况下,考虑使用<代码>异步代码>代码> >代码>等待/<代码>以允许I/O重动作在执行I/O相关答案时释放线程:HI,当前所有的东西都在本地运行,并且正在使用异步/等待。一天的大部分时间我都在谷歌上搜索。我们是否需要将MVC控制器设置为异步控制器?您似乎担心MVC控制器是异步的,但如果您通过angular(或任何js库)对其进行ajax调用,这与此无关。控制器不必是异步的,也不必在服务器端使用wait。显示一些有角度的代码。只是猜测一下,但如果禁用IIS上的会话状态会怎么样?关于使用REST这个词还有一件事..实际上你有更多的RPC web api,而不是RESTful api。我认为Patko可能有一些想法,因为你的角度代码看起来不错。尝试将此更改(或添加)到web.config:。请注意--禁用会话将意味着您不能再使用TempData。