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 }