学习Echart:(二)异步加载更新

时间:2022-08-23 21:10:04

  这部分比较简单,对图表的异步加载和更新,其实只是一部获取数据然后通过setOption传入数据和配置而已。

学习Echart:(二)异步加载更新学习Echart:(二)异步加载更新
$.get('data.json').done(function (data) {
myChart.setOption({
title: {
text:
'异步数据加载示例'
},
tooltip: {},
legend: {
data:[
'销量']
},
xAxis: {
data: [
"衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name:
'销量',
type:
'bar',
data: [
5, 20, 36, 10, 10, 20]
}]
});
});
View Code

官方虽然给的jquery方法示例,但我们可以用原生ajax或fetch等,这部分跟异步方式没关系,只要在回调中或promise的.then()中再次调用setOption刷新图标即可。

异步任务总会涉及一个问题,就是请求结果返回之前,我们的界面该显示什么?

1.显示空图表

官方给出的一种方案是先显示空的图标表,等数据返回后再填充图表。

学习Echart:(二)异步加载更新学习Echart:(二)异步加载更新
// 显示标题,图例和空的坐标轴
myChart.setOption({
title: {
text:
'异步数据加载示例'
},
tooltip: {},
legend: {
data:[
'销量']
},
xAxis: {
data: []
},
yAxis: {},
series: [{
name:
'销量',
type:
'bar',
data: []
}]
});

// 异步加载数据
$.get('data.json').done(function (data) {
// 填入数据
myChart.setOption({
xAxis: {
data: data.categories
},
series: [{
// 根据名字对应到相应的系列
name: '销量',
data: data.data
}]
});
});
View Code

2.loading动画 

学习Echart:(二)异步加载更新学习Echart:(二)异步加载更新
ECharts 默认有提供了一个简单的加载动画。只需要调用 showLoading 方法显示。数据加载完成后再调用 hideLoading 方法隐藏加载动画。

myChart.showLoading();
$.get(
'data.json').done(function (data) {
myChart.hideLoading();
myChart.setOption(...);
});
View Code