2015-02-08 50 views
-1

以下代码依次运行,一个接一个。我希望事情能够平行运行。我需要改变什么?几个Ajax请求,所有代码依次运行

window.onload = function() { 

    $.ajax({ 
     type: "GET", 
     url: "/Reports/GetTotalVisits" 
    }).done(function (data) { 
     $('#visitCount').text(data.visitCount); 
    }); 

    $.ajax({ 
     type: "GET", 
     url: "/Reports/GetTotalUsers", 
     async: true 
    }).done(function (data) { 
     $('#userCount').text(data.userCount); 
    }); 

    $.ajax({ 
     type: "GET", 
     url: "/Reports/VisitReport", 
     async: true 
    }).done(function (data) { 
     var ctx2 = document.getElementById("station-chart").getContext("2d"); 
     var myLineChart = new Chart(ctx2).Line(data); 
    }); 

}; 
+0

你确定它确实吗?我认为只有在请求完成时才调用'done'回调函数。 - 无论如何,你到目前为止试图改变什么?有几种方法可以做你想做的事情;使它平行运行的具体问题是什么? – Jeroen 2015-02-08 12:19:08

回答

0

下面的代码顺序地运行时,一个接一个。我想的东西并行运行...

我假定你的意思是你想的HTTP调用重叠,例如,开始时第一个运行,而不是在等待第二个,并启动第三,而前两个正在运行而不是等待。

如果是这样,那么客户端代码是好的。那些ajax请求依次启动,但会并行运行。如果你看到它们只发生在一系列情况下,请查看等式的服务器端。某些服务器技术会序列化来自同一客户端的请求,特别是在使用“会话”或类似的情况下。但客户端代码很好(并且从不需要async: true,这是默认设置)。