EChart

浅谈webpack4.0 性能优化(转)

别等时光非礼了梦想. 提交于 2020-05-05 01:11:32
前言:在现实项目中,我们可能很少需要从头开始去配置一个webpack 项目,特别是webpack4.0发布以后,零配置启动一个项目成为一种标配。正因为零配置的webpack对项目本身提供的“打包”和“压缩”功能已经做了优化,所以实际应用中,我们可以把精力更多专注在业务层面上,而无需分心于项目构建上的优化。然而从学习者的角度,我们需要了解webpack在项目的构建和打包压缩过程中做了哪些的优化,以及在原有默认配置上,还可以做哪些性能方面上的改进。 最近在完成vue的单页面应用后萌生了一个想法,抛弃掉vue-cli的构建配置,从零开始进行webpack优化,并将过程中的思路和体会分享在这篇文章中。webpack的初始配置在我之前写的另一篇 手把手教你从零认识webpack4.0 文章中,以下内容也不对基本的webpack配置做过多阐述。 一,优化的方向 1.1 项目开发 对开发者而言,我们希望webpack这个工具可以给我们带来流畅的开发体验。比如,当不断修改代码时,我们希望代码的变更能及时的通知浏览器刷新页面,而不是手动去刷新页面。更进一步的我们希望,代码的修改只会局部更换某个模块,而不是整个页面的刷新。这样可以使我们不需要在等待刷新中浪费很多时间,大大提高了页面的开发效率。 1.2 项目部署 项目部署上线时,性能优化是我们考虑的重点,有两个方向可以作为核心考虑的点

如果有一天我变得很有钱组——alpha冲刺_day2

假如想象 提交于 2020-05-02 11:35:58
这个作业属于哪个课程 2020春|S班 (福州大学) 这个作业要求在哪里 团队作业第五次——站立式会议+alpha冲刺 团队名称 如果有一天我变得很有钱 这个作业的目标 1、燃尽图。2、成员进展、困难、心得体会 作业正文 本文 其他参考文献 无 日志集合 1.燃尽图(leangoo自动绘制) 2.站立式会议图片 3.成员进展、困难及心得体会 陈启元 进展:完成了web端需要的账单表、类别表、账户表接口,开始编写服务器端处理app上传数据的功能 困难:思路有点乱,理了一下发现有几个主要问题:1、app端与服务器同一数据表有些字段不同名,json转换中如何解决赋值问题。2、app与服务器有些字段的兼容性还没确认。3、服务器端更新数据后如何方便地获得更新后的记录并返回 心得体会:要学的东西还是很多 徐哲宇 进展:正在写token验证登录 困难:不知道怎么发送json 心得:多百度多学习 刘昭玮 进展:报表页面的初步实现 困难:在使用vue封装Echart组件的时候出现了重复调用失败的问题,已解决。 心得体会:多实践总会发现一些以前没有发现的问题 张钰婷 进展:记账部分的界面编写 存在的问题:支出与收入转换时的类别切换界面还未完成 心得体会:界面的各种组件及它们的属性好多,还没能完全理解更好地应用,找到合适的方法展示页面花费了很多时间。继续加油! 叶尤澎 进展:编写了初版的账单修改页面

echarts图表无数据时,显示"暂无数据",富文本rich格式化title

谁说我不能喝 提交于 2020-04-29 15:41:52
echarts图表无数据时,显示"暂无数据",富文本rich格式化title 效果图如下: js代码 const echart = ecahrts.init(document.getElementById('myEcharts')); const option = { backgroundColor: '#ccc', title: { x: 'center', y: 'center', text: "这是普通的文本{a|暂}{b|无}{c|数}{d|据}", textStyle: { fontSize: 30, color: "#333", rich: { a: { color: 'red', fontSize: 80, fontWeight: 900, }, b: { color: 'yellow', fontSize: 70, fontWeight: 900, }, c: { color: 'blue', fontSize: 60, fontWeight: 900, }, d: { color: 'green', fontSize: 50, fontWeight: 900, } } } } }; echart.clear(); echart.setOption(option, true); 来源: oschina 链接: https://my.oschina.net

动态echarts及tree型图

我怕爱的太早我们不能终老 提交于 2020-04-26 06:05:11
一、 动态折线图 该部分是基于echarts开发的,主要有两部分组成,折线图和柱状图,其中末端的垂直细线和小圆球为柱状图部分,小球是柱状图的markPoint设置的,柱状图的data数据是与折线图data数据数组长度相同的数组,数组最后一项与折线图数组的最后一项等值,其余项均为0,具体配置如下: 动态设置的实现:在数组末端插入数据,同时去除数组的第一项,echarts更新,从而实现动态效果 二、 echarts关系图 该部分是基于echarts(tree型图)开发的,其data数据格式有限制(详情见文件:关系图数据格式.text),数据中的name字段包含label标签的所有数据信息,报警及非报警状态时label中字体及背景颜色,是echarts中的富文本结合正则实现的,具体配置如下: 动态echarts源码 1 <template> 2 <div> 3 <div id="echart1" ref="echart1"></div> 4 <div>{{show}}</div> 5 </div> 6 </template> 7 <script> 8 export default { 9 name: "echart1" , 10 data() { 11 return { 12 aadata: [], 13 bbdata: [], 14 ccdata: [], 15 zydata: [],

vue项目中,使用echarts的一些总结

时间秒杀一切 提交于 2020-04-26 05:20:06
vue项目中,使用了echarts的柱状图,折线图,饼图,雷达图等 一、柱状图: <template> <div ref="readerAnalyze" id="reader_analyze_chart"></div> </template> <script> import echarts from 'echarts' import { getaReaderAnalysis } from '@/api/big-screen.js' export default { props: ['refresh'], data() { return { } }, watch: { refresh() { setTimeout(() => { this._getaReaderAnalysis() }, 2000) } }, mounted() { this._getaReaderAnalysis() this.initEchart() }, methods: { initEchart() { //页面有多个echarts表,多个图表自适应 window.addEventListener('resize', () => { this.chart = echarts.init(this.$refs.readerAnalyze); this.chart.resize(); }) }, // 大屏数据

在vue项目中封装echarts的正确姿势

左心房为你撑大大i 提交于 2020-04-12 17:50:21
为什么需要封装echarts 每个开发者在制作图表时都需要从头到尾书写一遍完整的option配置,十分冗余 在同一个项目中,各类图表设计十分相似,甚至是相同,没必要一直做重复工作 可能有一些开发者忘记考虑echarts更新数据的特性,以及窗口缩放时的适应问题。这样导致数据更新了echarts视图却没有更新,窗口缩放引起echarts图形变形问题 我希望这个echarts组件能设计成什么样 业务数据和样式配置数据分离,我只需要传入业务数据就行了 它的大小要完全由使用者决定 不会因为缩放出现变形问题,而是能很好地自适应 有时候某个图表的样式可能有点不一样,希望能保留自己配置样式的灵活性 无论传入什么数据都能正确地更新视图 如果我传入的数据为空,能展示一个空状态 公共组件结构建议 当你把它书写为一个公共组件时,我我希望它应该是这样: 将单独机械的配置表独立成一份文件,暴露一个必要的vue单文件,同时携带一份README说明文档,当然,文档里面需要有关于你写的组件的使用示例和入参含义说明,这在大型项目中非常重要。 vue单文件代码 完整代码如下: <template> < div class = "chart" > </ div > </ template > < script > import { merge, isEmpty } from "lodash" ; import

在vue项目中封装echarts的正确姿势

拜拜、爱过 提交于 2020-04-12 16:05:54
为什么需要封装echarts 每个开发者在制作图表时都需要从头到尾书写一遍完整的option配置,十分冗余 在同一个项目中,各类图表设计十分相似,甚至是相同,没必要一直做重复工作 可能有一些开发者忘记考虑echarts更新数据的特性,以及窗口缩放时的适应问题。这样导致数据更新了echarts视图却没有更新,窗口缩放引起echarts图形变形问题 我希望这个echarts组件能设计成什么样 业务数据和样式配置数据分离,我只需要传入业务数据就行了 它的大小要完全由使用者决定 不会因为缩放出现变形问题,而是能很好地自适应 有时候某个图表的样式可能有点不一样,希望能保留自己配置样式的灵活性 无论传入什么数据都能正确地更新视图 如果我传入的数据为空,能展示一个空状态 公共组件结构建议 当你把它书写为一个公共组件时,我我希望它应该是这样: 将单独机械的配置表独立成一份文件,暴露一个必要的vue单文件,同时携带一份README说明文档,当然,文档里面需要有关于你写的组件的使用示例和入参含义说明,这在大型项目中非常重要。 vue单文件代码 完整代码如下: <template> < div class = "chart" > </ div > </ template > < script > import { merge, isEmpty } from "lodash" ; import

Qt编写地图综合应用3-省市区域图

我的梦境 提交于 2020-04-06 10:19:50
一、前言 省市区域图也可以叫省市轮廓图,就是将每个省份、市区的边界区域变成轮廓展示,只是个大概的轮廓,和真是的地图基本一致,毕竟都是一个个点堆起来的,可能会有很小很小的误差,之前做大屏系统中间那个中国地图的时候,客户千方百计交代清楚,千万要注意有九段线,不然在展会上被别人看到如果连九段线都没有的话会被人骂死,可能在部分早期的数据由于不是很完善所以未必有,后期的最新的地图数据都是有的,包括轮廓图数据。 echart本身是没有提供省市区域轮廓图的,需要引入外部的js文件才能绘制,为了拿到全国各省市的对应轮廓图js文件,特意去网上搜索了很多的相关文章并理解,下载到了对应的省市区域的json数据,然后根据js的规则特意写了个类专门用来转换json数据到js文件,然后生成了所有省市区域的js文件,在echart中用到哪个只需要那个的js文件即可,这些js文件在那个下载地址中都有的,至于这些区域的轮廓图其实是一些乱七八糟的符号具体什么含义我也没有搞懂,你说是base64编码吧仔细看也不像,管他呢,是正确的的能用就行,具体的原理估计也要研究echart的源码才行。 之前的闪烁点图或者迁徙图也好,都是用中国地图轮廓图作为背景的,可以鼠标缩放,其实svg也可以做到类似的效果,类似于矢量图,除了中国地图以外,其实还可以有世界地图,至于世界其他国家的地图估计要自己通过其他方式转换慢慢得到了

含有echart 图表的报表打印

这一生的挚爱 提交于 2020-03-14 10:41:19
最近需要打印含有echart图表的报表,采用jqprint插件打印,直接用jqprint打印echart的图不显示,这里需要借助img 来实现 首先下载jqprint插件,把jquery和jqprint文件引用 <script src="../../plugins/jQuery/jquery-1.4.4.min.js"></script> <script src="../../plugins/jqprint/jquery.jqprint-0.3.js"></script> 在页面上增加一个按钮 <input class="" type="button" onclick=" a()" value="打印"/> 在生成图表的div上面增加img元素 <div class=""> <img id="printImg1" style="width:100%;display:none;" > <div id="barchart1" style="height:450px;"></div> </div> var myChart2 = echarts.init(document.getElementById('barchart1'),theme); myChart2.setOption(option3); var img1 = document.getElementById('printImg1

如何提升Web前端性能?

試著忘記壹切 提交于 2019-12-23 12:03:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 什么是WEB前端呢?就是用户电脑的浏览器所做的一切事情。我们来看看用户访问网站,浏览器都做了哪些事情:输入网址 –> 解析域名 -> 请求页面 -> 解析页面并发送页面中的资源请求 -> 渲染资源 -> 输出页面 -> 监听用户操作 -> 重新渲染。 通过上面的路径可以看出浏览器分为请求、传输、渲染三部分来实现用户的访问,本文就从这三个部分来浅析如何提升WEB前端性能。 请求 浏览器为了减少请求传输,实现了自己的缓存机制。浏览器缓存就是把一个已经请求过的Web资源拷贝一份副本存储在浏览器中,当再次请求相同的URL时,先去查看缓存,如果有本地缓存,浏览器缓存机制会根据验证机制(Etag)和过期机制(Last-Modified)进行判断是使用缓存,还是从服务器传输资源文件。具体流程如下图所示: 如何从请求、传输、渲染3个方面提升Web前端性能 浏览器的请求有些是并发的,有些是阻塞的,比如:图片、CSS、接口的请求是并发;JS文件是阻塞的。请求JS的时候,浏览器会中断渲染进程,等待JS文件加载解析完毕,再重新渲染。所以要把JS文件放在页面的最后。 JS也可以通过两种方式由阻塞改成并行:一种是通过创建script标签,插入DOM中;另一种是在Script标签中增加async属性。 每种浏览器对同一域名并发的数量有限制