我有一个ASP.net应用程序,它包含一个仪表板界面它由各种数量的面板的。 每个面板包含一个HighChart控制,并从不同的数据源加载。 有些数据源可能需要一些时间来执行,所以我不想拖慢整个页面的执行,因为一个缓慢的加载数据源。
我想在页面加载,然后每个小组时,它的数据是呼之欲出。
由于我使用的是高图表中显示的数据我有jQuery代码类似于:
$(document).ready(function () {
var panelIDList = dashID.Get("panelList");
for (var i = 0; i < panelIDList.length; i++) {
addpanel(panelIDList[i]);
}
});
function addpanel(panelID)
{
$.ajax({
type: "POST",
url: "Data.aspx/GetData",
data: "{val:'" + panelID + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var myObject = eval('(' + msg.d + ')');
var options = {
chart: {
renderTo: myObject.renderTo,
type: myObject.chartVal,
height: 300,
width: 600
},
xAxis: {
categories: myObject.xaxis.Categories,
},
series: myObject.serList
};
var chart = new Highcharts.Chart(options);
}
});
如可以在$(文件)可以看出。就绪我做一个AJAX调用回服务器,以提取用于构建图表数据的JSON数据结构。
这一切工作正常,除了通话不似乎是真正的异步,如果第一个面板加载缓慢,则后续面板不加载,直到缓慢第一面板加载后。 为了证明我的面板数据源的1加了Thread.sleep代码。
我不会有虽然这是这样的情况下,我使用Ajax调用。