springboot使用ECharts、ECharts html中文乱码、直接引用CDN资源文件和引用本地资源文件哪个好

news2024/11/26 2:26:28

springboot使用ECharts、动态地引用版本

  • 1.添加依赖
  • 2.创建图表
    • 引入ECharts文件方式
    • 直接引用CDN资源文件和引用本地资源文件哪个好
  • 3.映射
  • 4.添加配置加载ECharts资源
  • 5.测试访问
  • 6.升级版本号问题
  • 7.ECharts html中文乱码

如果想在Spring Boot应用程序中使用ECharts,则可以按照以下步骤操作:

1.添加依赖

在Maven pom.xml文件中添加ECharts的依赖:

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>echarts</artifactId>
    <version>4.9.0</version>
</dependency>

2.创建图表

创建一个包含ECharts图表的HTML页面。该页面可以使用ECharts提供的JavaScript API来配置和呈现图表。
例如,创建一个名为chart.html的文件,内容如下:

<!DOCTYPE html>
<html>
<head>
	<!--如果乱码指定字符集为UTF-8-->
    <meta charset="UTF-8">
    <title>ECharts Example</title>
    <!-- 引入 ECharts 文件 -->
    <link rel="stylesheet" href="/webjars/echarts/4.9.0/echarts.min.css">
    <script src="/webjars/echarts/4.9.0/echarts.min.js"></script>
</head>
<body>
    <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
    <div id="myChart" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts图表
        var myChart = echarts.init(document.getElementById('myChart'));

        // 指定图表的配置项和数据
        var option = {
            title: {
                text: 'ECharts 入门示例'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        };

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

引入ECharts文件方式

ECharts是一个JavaScript图表库,可以轻松地在HTML页面中使用。在将ECharts引入HTML文件时,有几种不同的方法可供选择。

以下是一些常用的方法:

1. 直接引用CDN资源文件:这是最简单的方式,只需在HTML文件中添加以下代码即可:

<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>

这会从CDN中加载ECharts的最新版本,并且无需任何其他配置即可开始使用它。

2. 下载和引用本地资源文件:如果您希望将ECharts源码下载到本地并将其作为项目的一部分使用,则可以在HTML文件中添加以下代码:

<script src="/path/to/echarts.min.js"></script>

在这个例子中,我们将echarts.min.js文件放置在项目的某个目录下,并通过相对路径引用它。

直接引用CDN资源文件和引用本地资源文件哪个好

直接引用CDN资源文件和引用本地资源文件各有优点和缺点,您可以根据具体情况来选择。

  • 直接引用CDN资源文件的优点:

    • 加载速度快:CDN通常使用全球分布式网络,从离用户最近的服务器加载资源,因此可以获得更快的加载速度。

    • 省去下载和更新库的麻烦:无需在本地下载和更新库,减少了开发者的工作量,并且始终使用官方最新版本。

    • 节省带宽:CDN通常会对静态资源进行压缩和缓存处理,可以节省带宽和服务器资源。

  • 直接引用CDN资源文件的缺点:

    • CDN不稳定:某些CDN可能会因为网络故障、服务升级等原因导致不可用,影响应用程序的稳定性。

    • 隐私问题:使用CDN意味着将应用程序的代码和数据传输到第三方服务器上。这可能会涉及隐私问题或知识产权问题。

  • 引用本地资源文件的优点:

    • 更安全:本地资源文件不依赖于第三方服务,降低了被攻击的风险。

    • 更稳定:本地资源文件不会受到CDN的稳定性问题影响,可以更可靠地提供服务。

    • 更好的离线支持:对于一些需要离线使用的应用程序,本地资源文件是更好的选择。

  • 引用本地资源文件的缺点:

    • 加载速度较慢:由于本地资源文件需要从服务器下载,因此加载速度可能较慢。

    • 需要手动更新库:当ECharts更新时,您需要手动下载并更新库,这需要花费一些时间和精力。

总之,如果您的应用程序对加载速度、安全和隐私有高要求,则引用本地资源文件可能是更好的选择。如果您对更新和维护库的工作量进行优化,并且希望获得更快的加载速度和流畅的体验,则直接引用CDN资源文件可能更适合您。

3.映射

对于静态资源,请将它们放置在/static目录下。如果需要自定义静态资源目录的位置,则可以在Spring Boot应用程序中使用以下方式进行配置:创建了一个名为WebMvcConfig的配置类,并覆盖了addResourceHandlers()方法来配置ResourceHandlerRegistry注册表。此注册表指定所有URL都应该被解析为静态资源,并且这些资源位于classpath:/custom-resources/目录下。还禁用了缓存,以便更容易地进行开发和调试。例如:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/")
                .setCachePeriod(0);
    }

}

创建一个controller

@Controller
public class ChartController {
 
    @RequestMapping("/chart")
    public String chart() {
        return "chart";
    }
}

4.添加配置加载ECharts资源

在应用程序的application.properties文件中添加Webjars资源处理器的配置,以便从webjars目录中加载ECharts资源。

spring.web.resources.add-mappings=true
spring.web.resources.static-locations=classpath:/META-INF/resources/webjars/
server.port=8081

5.测试访问

启动应用程序并访问http://localhost:8080/chart,这将呈现包含ECharts图表的页面。
希望这些步骤可以帮助您在Spring Boot应用程序中接入ECharts!

在这里插入图片描述

整体结构
在这里插入图片描述

6.升级版本号问题

如果您升级了ECharts的版本号,需要在Maven或Gradle构建文件中更新版本号,例如:

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>echarts</artifactId>
    <version>5.2.2</version>
</dependency>

然后,在HTML页面中,您需要将/webjars/echarts/4.9.0/路径中的版本号部分更新到新版本号,例如:

<!DOCTYPE html>
<html>
<head>
	<!--如果乱码指定字符集为UTF-8-->
    <meta charset="UTF-8">
    <title>ECharts Example</title>
    <!-- 引入 ECharts 文件 -->
    <link rel="stylesheet" href="/webjars/echarts/5.1.2/echarts.min.css">
    <script src="/webjars/echarts/5.1.2/echarts.min.js"></script>
</head>
<body>
    <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
    <div id="myChart" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts图表
        var myChart = echarts.init(document.getElementById('myChart'));

        // 指定图表的配置项和数据
        var option = {
            title: {
                text: 'ECharts 入门示例'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        };

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

这里只需要将版本号从4.9.0更新为5.1.2。在页面上,ECharts库仍然可以通过相对路径/webjars/echarts/5.1.2/找到,因为Webjars资源处理器会自动加载最新版本的ECharts库。旧版本不使用,当你删掉本地仓库旧版本4.9.0的资源,就会404。
在这里插入图片描述

7.ECharts html中文乱码

如果您使用的是ECharts等图表库,并且在将HTML文件映射到URL时遇到了乱码问题,这可能与文件编码和响应头有关。

以下是一些可能的解决方案:

1.确保HTML文件是UTF-8编码。在使用Spring Boot时,默认情况下会使用UTF-8编码,但是如果您手动创建文件并使用其他编码,则可能会出现乱码问题。请确保所有HTML文件都是UTF-8编码,并使用文本编辑器来保存它们。

2.在控制器方法中设置响应头以指定输出内容的编码方式。例如,在返回HTML视图的控制器方法中,可以添加以下代码来设置响应头:

@RequestMapping("/chart")
public ModelAndView chart() {
    ModelAndView modelAndView = new ModelAndView("chart");
    modelAndView.addObject("data", getData());
    modelAndView.addObject("title", "My Chart");
    modelAndView.addObject("charset", "UTF-8");
    return modelAndView;
}

这个例子中,将一个名为charset的属性添加到模型中,并在视图中使用它来设置响应头的字符集。可以根据自己的需要调整此代码。
3.在HTML文件的部分添加一个标签,用于指定字符集。例如:

<head>
  <meta charset="UTF-8">
  <!-- 其他标签和脚本 -->
</head>

这个例子中,添加了一个标签,其中指定了字符集为UTF-8。这告诉浏览器和服务器应该使用UTF-8编码来处理HTML文件。

如果尝试了以上方法但仍然遇到乱码问题,则可能需要检查其他配置,例如使用的ECharts版本或响应内容类型等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/513709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多目标检测:基于Yolo优化的多目标检测(附论文下载)

关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5c;扫码在主页获取加入方式 计算机视觉研究院专栏 作者&#xff1a;Edison_G 为了解决目标检测任务中小目标检测精度低、误检、漏检率高等问题&#xff0c;有研究者提出了一种新…

前端实战项目:网易云静态页面——主页面右侧部分

文章目录 前言main部分结构布局用户登陆右侧列表header的封装歌手列表主播列表申请按钮 总代码 前言 项目持续更新中&#xff5e; 网易云静态页面——导航栏 网易云静态页面——轮播图 Flex布局详解 所用到文件及文件夹 header&#xff1a;是对某些标题样式的封装 main&…

软考A计划-重点考点-专题十一(系统工程知识)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

2023蓝桥杯真题c++省A

[蓝桥杯 2023 省 A] 填空问题 比赛的时候&#xff0c;脑袋要清晰一点&#xff0c;当时写 幸运数 这道题都感觉没在用脑子思考&#xff0c;花了特别多时间 A. 幸运数 小蓝认为如果一个数含有偶数个数位&#xff0c;并且前面一半的数位之和等于后面一半的数位之和&#xff0c;…

小家电类产品出口欧美国家/亚马逊平台认证要求请知悉!

小家电类产品CE认证 欧盟&#xff1a; “CE”标志是一种安全认证标志&#xff0c;被视为制造商打开并进入欧洲市场的护照。CE代表欧洲统一&#xff08;CONFORMITE EUROPEENNE&#xff09;。 根据欧盟的法律&#xff0c;生产商和进口商负责验证其产品符合相关的欧盟指令的要求…

哪款洗地机适合家用?家用洗地机型号分享

洗地机采用多种清洁方式&#xff0c;如湿拖、干拖、热水清洗等&#xff0c;可针对不同使用场合和地面类型进行清洁。而且洗地机无需手工操作&#xff0c;智能感应地面脏污&#xff0c;自动适应地面清洁程度&#xff0c;保证了清洁效率和效果。本文将为大家推荐几款性价比较高、…

三位一体,铸就无敌铁军!海陆空协同,开启集群新篇章!

在机器人领域&#xff0c;多机器人系统的研究一直是一大热点&#xff0c;众多高校与研究所逐步投入到机器人集群系统的研究当中&#xff0c;其中无人机编队表演、无人车群园区运输、无人船集群水域监测等集群应用更是进入了大众的视野。但对多机器人集群系统的需求却远不止于此…

「企业应用架构」应用架构行为准则

应用架构行为准则 应用程序架构是企业解决方案架构&#xff08;ESA&#xff09;的一个子集&#xff08;图1&#xff09;。应用程序架构既是一个过程&#xff08;架构和设计&#xff09;又是一个东西&#xff08;可交付成果——架构的内容&#xff09;。应用程序架构帮助组织规划…

Elasticsearch数据库

目录 1. 什么是ElasticSearch1.1 概念及特点1.2 ElasticSearch适用场景概述 2. 安装ElasticSearch2.1 下载安装包2.2 环境说明2.3 创建es的用户2.4 创建es存储位置2.5 安装es2.5 修改配置文件2.6 系统优化2.7 安装jdk环境2.8 切换es用户启动数据库2.9 systemctl管理2.10 访问 3…

听劝,不要什么都不懂就自学网络安全【黑客】

一、网络安全学习的误区 1.不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;且过渡到网络安全用到编程的用到的编程的关键点不多。一般人如果想要把编程学好再开始学习网络安全往…

SSL 证书安装使用中遇到的常见问题

为了实现网站HTTPS加密保护及身份的可信认证&#xff0c;防止传输数据的泄露或篡改&#xff0c;SSL证书已被各政企网站广泛应用。然而在部署和使用SSL证书的过程中&#xff0c;我们经常会遇到一些措手不及的问题&#xff0c;一旦处理不当&#xff0c;就会让网站面临信息被泄漏、…

Linux知识点 -- 常见指令及权限理解

Linux知识点 – 常见指令及权限理解 文章目录 Linux知识点 -- 常见指令及权限理解一、Linux下基本指令1.ls指令 - 列文件或目录信息2.pwd命令 - 显示用户当前所在目录3.cd指令 - 改变工作目录4.touch指令 - 更改文件时间或新建文件5.mkdir指令 - 创建目录 / tree - 以树状形式显…

Hbase入门篇02---数据模型和HBase Shell的基本使用

Hbase入门篇02---数据模型和基本使用 HBase数据模型表行列单元格 &#xff08;cell&#xff09;概念模型 shell命令行进行CRUD操作表的CRUD数据的CRUD数据批量导入计数操作大量数据的计数统计扫描操作limit限制返回条数返回指定列返回指定行键对应的数据 过滤器HBase中的过滤器…

【云原生进阶之PaaS中间件】第一章Redis-1.2数据类型

1 Redis 数据类型 Redis支持五种数据类型&#xff1a;string&#xff08;字符串&#xff09;&#xff0c;hash&#xff08;哈希&#xff09;&#xff0c;list&#xff08;列表&#xff09;&#xff0c;set&#xff08;集合&#xff09;及zset(sorted set&#xff1a;有序集合)。…

XML配置方式使用Spring MVC:实战练习

文章目录 任务1、设置项目首页 - index.jsp1、修改web.xml文件2、创建首页文件3、修改登录控制器4、启动服务器&#xff0c;查看效果 任务2、首页添加登录链接&#xff0c;单击跳转到登录页面1、修改首页文件2、修改登录控制器3、启动服务器&#xff0c;查看效果 任务3、利用Sp…

预测性维护无线振动监测方案QA合集

一、虹科无线振动监测方案 虹科无线振动监测方案具有高安全性、高可靠性、全自动诊断的优势&#xff0c;广泛应用于各种旋转设备的故障诊断。虹科无线振动监测方案包括Accel 310高分辨率无线振动系统&#xff0c;用户能够实现每小时获取标量数据或每日诊断监控机器状态。借助先…

PostgreSQL(五)JDBC连接串常用参数

目录 1.单机 PostgreSQL 连接串2.集群PostgreSQL 连接串 PostgreSQL JDBC 官方驱动下载地址&#xff1a; https://jdbc.postgresql.org/download/ PostgreSQL JDBC 官方参数说明文档&#xff1a; https://jdbc.postgresql.org/documentation/use/ 驱动类&#xff1a; driver-…

yarn切换element-plus版本

yarn的安装和卸载 npm install -g yarn npm uninstall yarn -g //yarn卸载 本机的element-plus版本 "element-plus": "2.0.1", 想要切换的element-plus版本 由于我需要用到树型选择&#xff0c;所以需要升级到2.1.8 用npm卸载element-plus时报如下错误…

Scala学习(三)---函数式编程

文章目录 1.面向对象编程2. 函数式编程是什么3.函数定义4.函数参数的特殊用法5.函数至简原则6.匿名函数6.1 匿名函数化简原则 7.高阶函数7.1 函数可以作为值进行传递7.2 函数可以作为参数进行传递7.3 函数可以作为返回值进行传递7.4 柯里化写法 1.面向对象编程 Scala语言是一个…

解决Uncaught SyntaxError: Unexpected reserved word

解决思路&#xff1a; 首先&#xff0c;我运行项目报错&#xff0c;我查看了一下node版本&#xff0c;是否太低&#xff0c; 如果是14版本的话&#xff0c;那么node需要升级&#xff0c; 目前&#xff0c;node已经升级到19&#xff0c;升级到16即可&#xff0c;无需太高 更…