基于ajax从后端服务器获取echarts的数据,并且显示在前端的页面上

最近在学习echarts,看到官方给出的入门案例数据都是“写死”的,那么应该如何从后端获取数据并渲染到前端呢?试着写了一个小案例,通过ajax实现的,小白初学,欢迎指正

前端代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>ECharts</title>
    <!--通过cdn的方式引入echarts和jquery文件-->
    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>

<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
    var myChart = echarts.init(document.getElementById('main'));
    var names = []; //x轴:物品的名称
    var nums = []; //y轴:物品的销量
    draw(); //获取后端传来的json对象并绘图
    function draw() {
        $.ajax({
            type: "post",
            async: true, //异步请求(默认也是异步)
            url: "test", //请求发送到后台controller的地址
            dataType: "json", //返回数据形式为json
            success: function (results) { //result参数是服务器返回的json对象,这个参数是自带的,名字随便起
                if (results != null) {
                    names.push(results["names"]) //取出Json对象中的值,作为绘图时的data
                    nums.push(results["nums"]) //这里为了方便只返回了一组数据,如果返回多组循环即可

                    myChart.setOption({ //绘图
                        title: {
                            text: 'echarts从后端获取数据'
                        },
                        tooltip: {},
                        legend: {
                            data: ['销量']
                        },
                        xAxis: {
                            data: names //从后端传过来的,没有“写死”
                        },
                        yAxis: {},
                        series: [
                            {
                                name: '销量',
                                type: 'bar',
                                data: nums //从后端传过来的,没有“写死”
                            }
                        ]
                    });
                }
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
            }
        })
    }
</script>
</body>
</html>

实体类(Goods)

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Goods { //导入Lombok可以简写
    private String names; //物品名称
    private int nums; //物品销量
}

controller控制器

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class EchartsController {

    @RequestMapping("/test")
    @ResponseBody
    public Goods echarts(){
        Goods goods = new Goods();
        goods.setNames("毛衣");
        goods.setNums(20);
        return goods; //返回一个json对象
    }
}
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts 是一款基于 JavaScript 的可视化图表库,可以通过 AJAX 异步请求后端数据并将数据绑定到柱状图上展示。以下是一个使用 jQuery 和 AJAX 请求后端数据并绑定到 ECharts 柱状图的示例: HTML 代码: ```html <div id="echarts" style="width: 600px;height:400px;"></div> ``` JavaScript 代码: ```javascript // 引入 ECharts var echarts = require('echarts'); // 初始化 ECharts 实例 var myChart = echarts.init(document.getElementById('echarts')); // 发送 AJAX 请求后端数据 $.ajax({ type: 'GET', url: '/data', // 后端接口地址 dataType: 'json', success: function (data) { // 处理后端返回的数据并绑定到柱状图上 myChart.setOption({ title: { text: '柱状图示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: data.categories // 后端返回的横坐标数据 }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: data.series // 后端返回的纵坐标数据 }] }); }, error: function (xhr, textStatus, errorThrown) { console.log('AJAX 请求失败:' + xhr.status + ', ' + errorThrown); } }); ``` 后端代码示例(使用 Node.js 和 Express 框架): ```javascript const express = require('express'); const app = express(); // 处理 AJAX 请求 app.get('/data', function (req, res) { const data = { categories: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], // 横坐标数据 series: [5, 20, 36, 10, 10, 20, 10] // 纵坐标数据 }; res.send(data); }); // 启动服务器 app.listen(3000, function () { console.log('服务器启动成功:http://localhost:3000/'); }); ``` 以上示例中,后端代码返回了一个 JSON 格式的数据,包含横坐标和纵坐标数据前端使用 AJAX 发送 GET 请求获取数据,并将数据绑定到 ECharts 实例上,最终展示在页面上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值