echart+ajax 异步数据加载和更新

说明

入门示例中的数据是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入。ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行。

准备工作

js文件:

  1. jquary.js 提取码:pg1b

  2. echarts.js 提取码:rrzn

  3. 在这里插入图片描述

index.html

(1). 先设置完其他样式,显示一个空的直角坐标轴,然后获取数据填入数据。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>myTitle</title>
    <script type="text/javascript" src="js/echarts.js"></script>
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
</head>
<body>
    <!--div容器-->
    <div id="mydiv" style="width: 600px;height: 400px"></div>

    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('mydiv'))
        myChart.setOption({
            title: {
                text: '异步数据加载示例'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: []
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: []
            }]
        });
/body>
</html>

(2). 然后通过$.post()来动态加载数据

<script type="text/javascript">

		...
		
       //异步加载数据
        $.post("ajax",function (msg) {
            // 填入数据
            myChart.setOption({
                xAxis: {
                	//categories标签
                    data: msg.categories
                },
                series: [{
                    // 根据名字对应到相应的系列
                    name: '销量',
                    //data标签
                    data: msg.data
                }]
            });
        })
</script>

controller层

(3). 根据ajax中的标签在controller中的方法中设置对应的值

	@Controller
public class IndexController {

    @RequestMapping("/index")
    public String show() {
        return "index";
    }
    
    @RequestMapping("ajax")
    @ResponseBody //把java对象转换为json对象
    public Map<String,Object> ajax(){
        List data= new ArrayList<Integer>();
        data.add(5);
        data.add(20);
        data.add(36);
        data.add(10);
        data.add(20);
        List categories = new ArrayList<String>();
        categories.add("毛衣");
        categories.add("衬衫");
        categories.add("袜子");
        categories.add("大衣");
        categories.add("鞋子");
        Map map = new HashMap<String,Object>();
        map.put("categories",categories);
        map.put("data",data);
        return map;
    }
}

测试结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值