我有一个带有多个ajax调用的视图,这些调用填充了视图本身,所以它是一个页面,有一些ajax调用来填充该页面的内容。
我想将呼叫设为异步,所有呼叫同时响铃,并在同一时间执行。
所以,如果我有6个电话,我想要像:
Start -18:01:01 -18:01:01 -18:01:01 -18:01:01 -18:01:01 -18:01:01
End -18:01:15 -18:01:11 -18:01:09 -18:01:02 -18:01:02 -18:01:12
所以没有方法可以阻止另一个。
我尝试过投放:[SessionState(SessionStateBehavior.Disabled)]
并将控制器更改为AsyncController
但我得到的结果是:
GetChartFacturForComer Ini 12:17:30 - 829
GetChartFacturForComer fini 12:17:30 - 936
GetChartTotalMonthFacturation Ini 12:17:30 - 943
GetChartTotalMonthFacturation fIni 12:17:31 - 062
GetChartActivityForDate Ini 12:17:31 - 480
GetChartActivityForDate fIni 12:17:31 - 626
GetChartActivityForClientType Ini 12:17:31 - 980
GetChartActivityForClientType fIni 12:17:32 - 221
GridIndex Ini 12:17:34 - 575
GridIndex fIni 12:17:36 - 264
GetChartActivityForSales Ini 12:17:36 - 596
GetChartActivityForSales fIni 12:17:36 - 931
其中Ini是方法的开头,fIni是结束。对于结果,很明显每个方法都是在前一个方法完成之后执行的,但这不是我想要的......
我只找到了Session和asynccontroller解决方案,但它无法正常工作。我错过了什么?我必须改变我的代码吗?
注意:我的方法不是asyn,但是对于我所读到的,它不是必需的。
我的代码:
public class AsyncBaseController : AsyncController{
// code
}
public class HomeController : AsyncBaseController{
public JsonResult GetChartFacturForComer(){
//LongMethod 1
}
public JsonResult GetChartTotalMonthFacturation(){
//LongMethod 2
}
public JsonResult GetChartActivityForClientType(){
//LongMethod 3
}
public JsonResult GetChartActivityForSales(){
//LongMethod 4
}
public JsonResult GetChartActivityForDate(){
//LongMethod 5
}
public JsonResult GridIndex(){
//LongMethod 6
}
}
注意:调用是kendo组件,我不知道这是否会影响,但信息是信息。
修改
正如我所提到的,jquery中的调用来自kendo组件,我们正在使用剃刀助手,所以我有类似的东西:
@ Html.Kendo()。Chart(“FirstChart”)。DataSource(ds => ds.Read(“GetChartFacturForComer”,“Home”)); @ Html.Kendo()。Chart(“SecondChart”)。DataSource(ds => ds.Read(“GetChartTotalMonthFacturation”,“Home”)); @ Html.Kendo()。Chart(“ThirdChart”)。DataSource(ds => ds.Read(“GetChartActivityForClientType”,“Home”)); @ Html.Kendo()。Chart(“FourthChart”)。DataSource(ds => ds.Read(“GetChartActivityForSales”,“Home”)); @ Html.Kendo()。Chart(“FifthChart”)。DataSource(ds => ds.Read(“GetChartActivityForDate”,“Home”)); @ Html.Kendo()。网格(“网格”).DataSource(dataSource => dataSource .Ajax()。Read(read => read.Action(“Grid”,“Home”));
和Js
$.ajax({
url: configuration.url,
success: function (data) {
Chart.LoadDynamicChartWithLegend(configuration.optionsToLoadDynamicChartWithLegend, data);
}
});
我获取图表的参数并为每个图表调用$ .ajax。