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

    xiaoxiao2022-07-07  155

    文章目录

    说明准备工作index.htmlcontroller层

    说明

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

    准备工作

    js文件:

    jquary.js 提取码:pg1b

    echarts.js 提取码:rrzn

    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; } }

    测试结果:

    最新回复(0)