【发布时间】:2023-03-03 01:15:01
【问题描述】:
我正在尝试创建一个包含多个 ajax 加载数据的串行图。到目前为止,我还没有看到任何人这样做,但我能够在网上使用类似的示例。结果的问题是加载需要很长时间,并且所有数据都聚集在一起。有没有办法将从每个 ajax 返回的每个数据加载到特定的图形(只有状态和计数器是唯一返回的数据)?
$(document).ready(function() {
var chartDataResults = new Array();
$.ajax({
type: "POST",
contentType: "application/json",
url: "../NewProjectEdit.aspx/bronxBind",
async: false,
dataType: 'json',
success: function(data) {
generateChartData(data.d);
}
});
$.ajax({
type: "POST",
contentType: "application/json",
url: "../NewProjectEdit.aspx/brooklynBind",
async: false,
dataType: 'json',
success: function(data) {
generateChartData(data.d);
}
});
$.ajax({
type: "POST",
contentType: "application/json",
url: "../NewProjectEdit.aspx/manhattanBind",
async: false,
dataType: 'json',
success: function(data) {
generateChartData(data.d);
}
});
$.ajax({
type: "POST",
contentType: "application/json",
url: "../NewProjectEdit.aspx/queensBind",
async: false,
dataType: 'json',
success: function(data) {
generateChartData(data.d);
}
});
$.ajax({
type: "POST",
contentType: "application/json",
url: "../NewProjectEdit.aspx/statenIslandBind",
data: '{}',
async: false,
dataType: 'json',
success: function(data) {
generateChartData(data.d);
}
});
function generateChartData(dataValues) {
for (var i = dataValues.length - 1; i >= 0; --i) {
console.log(dataValues[1]);
var chartItems = dataValues[i];
var chartStatus = chartItems.status
var chartCounter = chartItems.counter
chartDataResults.push({
status: chartStatus,
counter: chartCounter
});
var chart = AmCharts.makeChart("chartdiv", {
"type": "serial",
"theme": "light",
"depth3D": 20,
"angle": 30,
"legend": {
"horizontalGap": 10,
"useGraphSettings": true,
"markerSize": 10
},
"valueAxes": [{
"stackType": "regular",
"axisAlpha": 0,
"gridAlpha": 0
}],
"dataProvider": chartDataResults,
"graphs": [{
"balloonText": "<b>[[title]]</b><br><span style='font-size:14px'>[[category]]: <b>[[value]]</b></span>",
"fillAlphas": 0.8,
"labelText": "[[value]]",
"lineAlpha": 0.3,
"title": "Bronx",
"type": "column",
"color": "#000000",
"valueField": "counter"
}, {
"balloonText": "<b>[[title]]</b><br><span style='font-size:14px'>[[category]]: <b>[[value]]</b></span>",
"fillAlphas": 0.8,
"labelText": "[[value]]",
"lineAlpha": 0.3,
"title": "Brooklyn",
"type": "column",
"color": "#000000",
"valueField": "counter"
}, {
"balloonText": "<b>[[title]]</b><br><span style='font-size:14px'>[[category]]: <b>[[value]]</b></span>",
"fillAlphas": 0.8,
"labelText": "[[value]]",
"lineAlpha": 0.3,
"title": "Manhattan",
"type": "column",
"color": "#000000",
"valueField": "counter"
}, {
"balloonText": "<b>[[title]]</b><br><span style='font-size:14px'>[[category]]: <b>[[value]]</b></span>",
"fillAlphas": 0.8,
"labelText": "[[value]]",
"lineAlpha": 0.3,
"title": "Queens",
"type": "column",
"color": "#000000",
"valueField": "counter"
}, {
"balloonText": "<b>[[title]]</b><br><span style='font-size:14px'>[[category]]: <b>[[value]]</b></span>",
"fillAlphas": 0.8,
"labelText": "[[value]]",
"lineAlpha": 0.3,
"title": "Staten Island",
"type": "column",
"color": "#000000",
"valueField": "counter"
}],
"categoryField": "status",
"categoryAxis": {
"gridPosition": "start",
"axisAlpha": 0,
"gridAlpha": 0,
"position": "left",
"labelRotation": -45
},
"export": {
"enabled": true
}
});
}
}
});
#chartdiv {
width: 100%;
height: 100%;
}
.amcharts-export-menu-top-right {
top: 10px;
right: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chartdiv" background-color: #FFFFFF; " ></div>
【问题讨论】:
标签: javascript ajax amcharts