echarts如何异步加载图表数据?
封装了一个echarts的自定义函数:
function echarts(getDataUrl) {
require.config({paths: {echarts: '/theme/js/dist'}});
require(['echarts','echarts/chart/line'],DrawELine);
var myChart;
function DrawELine(ec) {
var myChart = ec.init(document.getElementById('mainn'));
myChart.showLoading({text: "图表数据正在努力加载..."});
var options = {
title : {
text: '',
subtext: ''
},
tooltip : {
trigger: 'axis'
},
legend: {
data:[]
},
toolbox: {
show : false
},
calculable : true,
xAxis : [
{
type : 'category',
boundaryGap : false,
data : []
}
],
yAxis : [
{
type : 'value',
axisLabel : {
formatter: '{value}'
}
}
],
series : []
};
$.ajax({
type: "post",
async: false,
url: getDataUrl,
dataType: "json",
success: function (result) {
if(result.status = 200){
options.xAxis[0].data = eval(result.data.category);
options.series = eval(result.data.series);
options.legend.data = eval(result.data.legend);
myChart.hideLoading();
myChart.setOption(options);
}
},
error: function (errorMsg) {
alert("图表请求数据失败啦!");
}
});
}
}
后端返回的JSON数据如下:
{
"data": {
"legend": "["独立用户","页面访问","下载次数"]",
"category": "["2015-08-15","2015-08-16","2015-08-17","2015-08-18","2015-08-19","2015-08-20","2015-08-21","2015-08-22","2015-08-23","2015-08-24","2015-08-25","2015-08-26","2015-08-27","2015-08-28","2015-08-29","2015-08-30"]",
"series": "[{"name":"独立用户","type":"line","data":["0","0","2","0","2","0","2","0","0","0","0","0","0","2","0","0"]},{"name":"页面访问","type":"line","data":["0","0","8","0","8","0","8","0","0","0","0","0","0","8","0","0"]},{"name":"下载次数","type":"line","data":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"]}]"
},
"info": "success",
"status": 200
}