【jQuery】使用ajax load方法加载页面之后使用Echarts的方法

前言:

在使用了 ajax 的 load 方法加载页面之后,导致之前的 echarts 绘图无法在新加载的页面使用,在网上搜索了一番之后,有的说不能使用 load 方法,要使用 get 或者 post 方法,有的说要重写 load 方法的,这些方法都不适合我,所以现在记录我自己的方法,供大家参考。

需求:

  1. 使用 ajax load() 方法在 A.php 页面加载 B.php 页面。
  2. 加载之后在 B.php 页面使用 Echarts 绘制图形。

方法:

A.php

... 其他代码段 ...

<div id="newPageContents">

</div>

... 其他代码段 ...

B.php

<!-- css样式最好写在单独的css文件中,并且需要指定div的长宽 -->
<style>
    .main {
        width: 900px;
        height: 500px;
    }
</style>

<div class="my-4 w-100 main" id="main" width="900" height="380"></div>

js代码 ( js文件请在 A.php 文件里加载 ):

$(document).ready(function () {
    $('#newPageContents').load('/your_page_url', { // 你自己 load 的页面 url
            'key': value, '_token': token, // Laravel post 提交需要 token
    }, function (response, status, xhr) {
        if (response.length > 50) {
            myChart = echarts.init(document.getElementById('main'));
            exampleFunc(data);
        }
    });

    function exampleFunc(data) {
        window.onresize = function () {
            myChart.resize();
        };
        $.ajax({
            url: "/your_ajax_url", // 你自己的 ajax url
            type: "POST",
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            data: {
                "key": data,
            },
            success: function (result) {
                var option = {
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: { type: 'cross' }
                    },
                    xAxis: {
                        name: '登录日期',
                        data: result['date']
                    },
                    yAxis: {
                        name: '登陆次数'
                    },
                    series: [
                        {
                            name: '登陆次数',
                            type: 'line',
                            data: result['times'],
                        }
                    ]
                };

                // 使用刚指定的配置项和数据显示图表。
                myChart.setOption(option);
            }
        });
    }
});

解释:

1. 关键点在于 load 方法里的回调函数,load 写法:

$("#selector").load(url, { key: value }, function(response, status, xhr) {
    if (response.length > 50) {
                myChart = echarts.init(document.getElementById('main'));
                adminLoginRecord(data);
            }
});

2. 这里的 if (response.length > 50) 的意思是 load 传递回来的内容为页面显示的代码,但是由于我的 response 里除了页面的 tag 内容,还有错误信息 (如果有错误),所以只能通过 response 的长度来判断是否需要使用 Echarts 来绘制图形。因为错误信息的 string 小于 50

总结:

以上,就是使用 ajax load 方法加载新页面之后,在新页面使用 Echarts 绘制图形的方法。如果有不明白或者更好更简便的方法,可以在下面评论交流,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一款功能强大的数据可视化库,可以通过Ajax请求动态加载数据进行图表展示。使用EChartsAjax请求需要以下步骤: 1. 引入ECharts的相关文件:首先确保在HTML文件引入了ECharts的核心库文件和主题文件,可以通过CDN方式引入,也可以将文件下载到本地后引入。 2. 创建容器:在HTML文件创建一个容器,用于展示ECharts图表。 3. 初始化ECharts实例:在JavaScript创建一个ECharts实例,传入刚才创建的容器作为参数。 4. 编写Ajax请求函数:使用JavaScript的Ajax方法(比如XMLHttpRequest或jQuery的$.ajax()方法)向服务器发送请求,获取数据。可以通过设定dataType为json,保证获取到的数据为JSON格式。 5. 数据处理:在Ajax请求成功后,可以对获取到的数据进行处理,根据ECharts的要求将数据转化为相应的格式。比如将数据提取到一个数组,或者将数据按照x轴和y轴分别存储。 6. 绘制图表:将处理好的数据传入ECharts实例的setOption()方法,配置图表的相关参数,比如图表的类型、标题、x轴和y轴的内容等。然后调用ECharts实例的方法(如调用render()方法)将图表渲染到之前创建的容器。 7. 监听窗口变化:为了保证图表在不同窗口尺寸下的响应式展示,可以使用resize()方法监听窗口大小变化,一旦窗口大小发生变化,就重新渲染图表。 通过这些步骤,可以使用EChartsAjax请求动态加载数据,实现图表的动态展示。同时,可以根据具体的需求对图表进行各种配置和样式的调整,使其更加符合实际需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值