另外你需要补充一下浏览器加载、解析、渲染的一些知识。复制一下偶之前整理的笔记。
浏览器加载
加载过程 当浏览器获得一个html文件时,会”自上而下“加载,并在加载过程中进行解析渲染。 加载过程中遇到外部CSS文件,浏览器另外发出一个请求,来获取css文件。 遇到图片资源,浏览器也会另外发出一个请求,来获取图片资源。这是异步请求,并不会影响html文档进行加载。 但是当文档加载过程中遇到js文件,html文档会挂起渲染(加载解析渲染同步)的线程,不仅要等待文档中js文件加载完毕,还要等待解析执行完毕,才可以恢复html文档的渲染线程。加载外联js和css的阻塞情况
一个不太严谨但方便记忆的口诀:JS 全阻塞,CSS 半阻塞
JS 会阻塞后续 DOM 解析以及其它资源(如 CSS,JS 或图片资源)的加载。CSS不阻塞DOM的加载和解析(它只阻塞DOM的渲染呈现。这里谈加载),不会阻塞其它资源(如图片)的加载,但是会阻塞 后续JS 文件的执行(原因之一是,js执行代码可能会依赖到css样式。css只阻塞执行而不阻塞js的加载)。鉴于上面的特性,当css后面存在js的时候,css会间接地阻塞js后面资源的加载(css阻塞js,js阻塞其他资源 )。现代浏览器会进行 prefetch 优化,浏览器在获得 html 文档之后会对页面上引用的资源进行提前下载
外联js文件使用defer属性和asyn可以达到异步非阻塞加载的效果,由于现代浏览器都存在 prefetch,所以 defer, async 可能并没有太多的用途,可以作为了解扩展知识,仅仅将脚本文件放到 body 底部(但还是在之前)就可以起到很不错的优化效果(遵循先解析再渲染再执行script这个顺序)。当把js放在最后的时候,其实浏览器将自动忽略标签,从而自动在最后的最后补上。
浏览器解析
1、浏览器通过请求的 URL 进行域名解析,向服务器发起请求,接收文件(HTML、CSS、JS、Images等等)。2、HTML 文件加载后,开始构建 DOM Tree(DOM树)3、CSS 样式文件加载后,开始解析和构建 CSS Rule Tree4、Javascript 脚本文件加载后, 通过 DOM API 和 CSSOM API 来操作 DOM Tree 和 CSS Rule Tree
浏览器渲染
1、浏览器引擎通过 DOM Tree 和 CSS Rule Tree 构建 Rendering Tree(渲染树)2、布局阶段——在屏幕上绘制渲染树中的所有节点的几何属性,比如: 位置,宽高,大小等等,这个过程称为 Flow 或 Layout 。3、绘制元素——绘制所有节点的可视属性。4、合并渲染层——把以上绘制的所有图层(类似于PhotoShop中的“图层”)合并,最终输出一张图片
其中的阶段3、4可称之为Paint
Repaint和Reflow
当用户在浏览网页时进行交互或通过 js 脚本改变页面结构时,以上的部分操作有可能重复运行,此过程称为 Repaint 或 Reflow。
Repaint
当元素改变的时候,将不会影响元素在页面当中的位置(比如 background-color, border-color, visibility),浏览器仅仅会应用新的样式重绘此元素,此过程称为 Repaint。
Reflow
当元素改变的时候,将会影响文档内容或结构,或元素位置,此过程称为 Reflow。( HTML 使用的是 flow based layout ,也就是流式布局,所以,如果某元件的几何尺寸发生了变化,需要重新布局,也就叫 Reflow。)
Reflow 的成本比 Repaint 的成本高得多的多。大家应当尽量避免Reflow。
如何优化浏览器渲染过程
1、创建有效的 HTML 和 CSS ,不要忘记指定文档编码,比如。2、CSS 样式应该包含在 中, Javascript 脚本出现在末尾。3、减少 CSS 嵌套层级和选择适当的选择器,可参考 如何提升 CSS 选择器性能。4、不要通过 JS 逐条修改 DOM 的样式,提前定义好 CSS 的 Class 进行操作。5、尽量减少将 DOM 节点属性值放在循环当中,会导致大量读写此属性值。6、尽可能的为产生动画的 HTML 元素使用 fixed 或 absolute 的 position ,那么修改他们的 CSS 是不会 Reflow 的。
css的选择器的分类不包括“超文本标记选择器”。
css的选择器包括类选择器、标签选择器、ID选择器、伪类选择器等等。
类选择器,比如class类型 class = "nav"的话,那么css对应.nav{};
标签选择器,比如body input 就是直接对应 body{} input{};
ID选择器,比如,那么css对应 #name{};
伪类、伪对象:如a:link,a:hover,a:visited等。
Sass是CSS的预处理器,它提供了许多便利的写法方法
可以使用变量,常量,嵌套,函数,混合,继承等功能,让css的开发变得更加简单可维护。
直接写出来的sass文件其实就是普通的文本文件,以.sass或.scss作为文件后缀名。
里面可以直接使用css语法以及sass特有的语法特性,完成后通常需要经过编译成合法的css文件以供浏览器使用。
sass的安装
sass基于Ruby语言开发而成,因此安装sass前需要安装Ruby。
安装完成后需测试安装有没有成功,运行CMD输入以下命令:
ruby -v
如安装成功会打印
ruby 2.2.2p95 (-04-13 revision 50295) [i386-mingw32]
Ruby自带一个叫做RubyGems的系统,用来安装基于Ruby的软件。大家可以使用这个系统来 轻松地安装Sass和Compass。要安装最新版本的Sass和Compass,你需要输入下面的命令:
安装如下(如mac安装遇到权限问题需加 sudo gem install sass)
gem install sass
gem install compass
在每一个安装过程中,你都会看到如下输出:
Fetching: sass-3.x.x.gem (100%)
Successfully installed sass-3.x.x
Parsing documentation for sass-3.x.x
Installing ri documentation for sass-3.x.x
Done installing documentation for sass after 6 secon
1 gem installed
安装完成之后,你应该通过运行下面的命令来确认应用已经正确地安装到了电脑中:
sass -v
Sass 3.x.x (Selective Steve)
compass -v
Compass 1.x.x (Polaris)
Copyright (c) - Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: /compass
sass的编译
1.命令行编译;
//单文件转换命令
sass input.scss output.css
//单文件监听命令
sass –watch input.scss:output.css
//如果你有很多的sass文件的目录,你也可以告诉sass监听整个目录:
sass –watch app/sass:public/stylesheets
2.编译工具Koala
3.使用vscode中的Live Sass Compiler插件来实现scss文件的实时编译
变量
Sass 让人们受益的一个重要特性就是它为 CSS 引入了变量。你可以把反复使用的 CSS 属性值 定义成变量,然后通过变量名来引用它们,而无需重复书写这一属性值。
变量的定义是以$符号开头,加上变量名,比如:
$text-warning: red;
$border-radius: 5px;
.tip {
color: $text-warning;
border: 1px solid $border-radius;
}
变量也可以通过加减乘除等运算符号进行计算,比如:
$font-base: 10px;
.article {
font-size: $font-base * 2 – 4px;
border-width: $font-base / 10;
}
变量的注意事项
变量需要提前声明才能使用,因为编译是从上往下进行的,如果在还未声明变量的地方使用,会找不到这个变量。
变量都是全局变量,如果在大括号内部定义的变量则属于局部变量。
嵌套
通常所用到的选择器嵌套是这样的,将新的选择器放到父级选择器当中,并且可以无限多级嵌套。
继承
如果存在两个class,他们有一些不同但又有许多相似之处,以前的做法可能是把所有样式重复声明两次。但是有sass之后更好的做法是创建一个基础的class,然后在第二个class中用@extend继承它,同时还可以添加一些额外的样式,或者对某些样式进行重写。比如大家之前学过bootstrap的按钮的构建思想,是对基础样式进行附加和重写,而现在想要定义自己的样式时就可以很方便地进行这一操作了。首先声明一个标准样式的class,然后继承这个样式,然后设置不同的主题色:
混合
当出现大段大段重用样式代码时,独立的变量就难以应付,这个时候可以通过sass的混合器@mixin 和 @include 实现大段样式的重用。在定义mixin时,需要在前面添加@符号,使用时需要用@include来引用该@mixin:
导入
导入规则可以从外部文件导入mixin混合器等等。在sass中有一个命名惯例,被导入的样式文件名用下划线做前缀。导入的语法是@import “xxx”,这里的xxx不需要带文件后缀和下划线前缀。也就是说导入“_style.sass”或者“_style.scss”的时候,只需要写@import “style”就可以了:
1.为什么要使用SASS?
它是预处理语言,它为CSS提供缩进语法(它自己的语法)。
它允许更有效地编写代码和易于维护。
它是包含CSS的所有功能的CSS的超集,是一个开源的预处理器,以 Ruby 编码。
它提供了比平面CSS好的结构格式的文档样式。
它使用可重复使用的方法,逻辑语句和一些内置函数,如颜色操作,数学和参数列表。
2.列出SASS的一些功能?
它是更稳定,强大,与CSS的版本兼容。
它是超集的CSS和基于JavaScript。
它被称为CSS的语法糖,这意味着它使用户更容易阅读或表达的东西更清楚。
它使用自己的语法并编译为可读的CSS。
你可以在更少的时间内轻松地编写CSS代码。
它是一个开源的预处理器,被解释为CSS。
3.SASS的优点是什么?
它允许在编程结构中编写干净的CSS。
它有助于编写CSS更快。
它是CSS的超集,帮助设计师和开发人员更有效率和快速地工作。
由于Sass兼容所有版本的CSS,大家可以使用任何可用的CSS库。
可以使用嵌套语法和有用的函数,如颜色操作,数学和其他值。
给大家推荐一款人人可上手的可视化工具,那就是Excel,好评度五星!
全文7688字,阅读需要10分钟,赶时间的朋友先点赞收藏,方便下次学习!
为什么要推荐Excel呢?
兼容性,Excel与PPT可以实现数据同步,数据修改后能直接呈现在PPT,一劳永逸。内在:Excel有5大类常规的数据可视化表达,图表类多达13种,还可以通过自定义制作多变的数据可视化表达,满足95%的日常办公需求。
跟其他数据可视化工具对比,
①对比可视化网站工具,Excel拥有强大的数据分析(Excel函数,数据透视表等),而大多数在线工具只能输入结果,而无法运算。 ②对比R、Python等,Excel对于初学者的友好高,基本2周就能大概掌握,而这些语言太难了! ③普及率高:哪台电脑没有装Excel,你要表达你的观点也容易。
想快速掌握Excel可视化表达,先了解一下可视化的全面架构:
以下就是课件内容的例子,先给同学看一下效果:
基础图表:《王者之星★》
三维地图:《广州武汉之❤》
Excel控件:《520❤你的名字》
《进阶の图表》
《智联之薪》
接下来,大家从第一个开始撩:
E01.认识数据可视化
数据可视化就是通过图形,呈现出数据大小,占比,分布等特点,从而传递信息给大家。
下面偶就用地图简单举栗子吧
腾讯位置大数据/
地图越亮的地方代表定位次数越多的地方,这个定位跟大家人口分布一致的。
通过流量折线图比较,大家就能直观看出欢乐谷的应该是9点开门,19点闭门。
关于数据可视化,大家可以多去一些可视化网站看看,其实大家大多数人接触数据可视化应该是小学、初中、高中的地理课本。
E02.Excel的数据可视化表达
在Excel中常见可视化表达有五类,分别是REPT函数、条件格式、迷你图、Excel图表,三维地图。
点击获取Excel图表视频教程和源文件模板★★★★★N0.1 REPT函数
表达式:=REPT(text,number_times) =REPT(重复文本,重复次数)
注意重复文本要用英文状态下引用,通过具体的实例去实战吧~
01.给课程做数据条
表达式子:=REPT(“|”,C5)&C5
选择适合的字体很重要,一般适合展示20至100的数据
02.网站流量漏斗图
03.电影评分表
04.相亲心动指数
05.人口金字塔图
NO.2 条件格式
01.突出显示单元格规则
点击【开始】→【条件格式】即可选择相关的规则,突出显示相关的单元格。
1.查找重复值,查找班里不及格的人等等
02.最前最后的规则
利用前N项或者后N项,通过突出显示快速找到对应的数据。
例如大家可以显示数学成绩高于平均分的同学、显示各位同学最低的一门科目成绩、班里成绩最好的3位同学
03.图标集
许多小伙伴不知道这些小图标是来自条件格式,导致了误以为是图表上的。
优点:其实这些精致的小图标设置很简单,通过默认的设置就能得出来。 缺点:就是精度不高,只能表示大概。图标集分为方向、形状、标记、等级四个归类,根据归类大家日常主要分别应用在
方向:表示涨↑跌↓,一般用于数据对比
形状:一般用于分类划分的信号
标记:用于标记状态,某件事做了与否,达成目标与否
等级:表示占比划分
04.色阶
色剂可以设置双色色阶或者三色色阶。
05.半自定义规则
如果还不过瘾可以通过自定义格式来设置,整体设置也不难,所有的框和图标均可以自定义设置。
06.公式自定义条件格式
公式自定义条件格式,相对与上面的会难点,但通过简单标志有更高的灵活度。
自定义格式百分比图
2.动态考勤记录表
3.项目计划甘特图
03.迷你图
迷你图有三种形式,柱形、折线和盈亏图,它的优点是能大概表示数据状态,确定就是精准度低,图形无法表示数据真实差距。
无排版可视化的表格
经过可视化后↓
点击获取Excel图表视频教程和源文件模板★★★★★04.三维地图
武广之恋❤
本题版本要求:及以上,版本可以安装power map插件还能拯救。
点击获取Excel图表视频教程和源文件模板★★★★★
本道题可以简单拆分为:心形图形表达式+三维地图
01.第一步构建数据源
大家在百度或者一些论坛上找到心形的函数Excel表达式,然后在Excel上列出具体的数据源,这是最关键的又是最麻烦的一部分工作。就能直接下载该偶精心为大家准备源文件啦!
02.打开三维地图
1.大家把标准的心形函数表达式放到三维地图上,其表达效果这样紫滴,地理曾经满分的偶一下子恍然大悟,这不就是本初子午线(经度=0)与赤道(纬度=0)交界的地方嘛。
2.当大家把坐标的中心定位到广州,不就是将原来的表达式加上广州的经纬度,偶马上百度了一下广州的经纬度。广州(东经113.23,北纬23.16)大小老可爱们直接在偶的城市填上经纬度就OK啦↓
以广州为例↓
延伸:西经与南纬,需要把坐标写成负数。如西经113.23,南纬23.16(-113.23,-23.16)这样表达。
于是大家在茫茫的太平洋找到这个东西↓
03.添加异地坐标
在对应偶的城市,和你的城市填上对应的坐标轴,可得到:
广州与武汉❤
广州与珠海❤
05.特别提醒
更改过数据源后一定要刷新数据啊!
E03.了解Excel图表的规范与应用
E03-1.参考优秀的图表借鉴样式、布局、配色等
a.echart网站
b.设计网站
c.可视化平台等:如网易数读
d.商业杂志
E03-2.一份专业商务图表具备哪些特
图表原有元素:2.主标题;5.图例;6绘图区(1.纵坐标、2.网格线、3.横坐标、4.图形)
添加元素:1.logo;3.副标题,4.单位,7.备注
E03-3.快速了解图表基础设置
E03-4.配置表格主题颜色
E03-5.系统设置整个表格主题
了解整个表格和图表的基础和规范设置后,大家马上去了解各种基础图表。
E04.玩王者荣耀,学习基础图表
学习基础图表,大家只需要吧这个《王者荣耀看板》做一遍,基本就你能掌握90%日常工作的应用,更重要你做完后会有一股成就感。
王者荣耀数据看板
王者荣耀动态看板
那大家分解一下,都是由哪些图表构成的,从这个图表就能从主标题看出是哪些图表,大家还可以通过点击图表左上方蓝色■形状,进行跳转到对应的图表联系区域。
教学部分主要采用了《经济学人》的配色风格演示,大家可以通过设置页面布局的主题,变换主题颜色。
E04-1.柱形图
01.表格开始页引导:
02.图表练习区域展示:
02.图表小结区域:
每个图表做了实践之后,大家会给大家总结主要的知识点,方便大家快速上手图表。
E04-2.条形图
条形图在王者荣耀中很常见,例如对战战绩图,血量、蓝量还有回城图都是由条形图来展示的。
03.知识点小结:
接下来的图表,就简单跟介绍一下需要注意的事项,或者一些与其他图表的不同点或共同点:
E04-3.折线图E04-4.环形/饼状图:占比分析E04-5.面积图:占比趋势分析
这个在王者中的经济占比运用的就是面积图。
03.知识点小结:
E04-6.散点图:双变量分析
03.知识点小结:
E04-7.气泡图:三变量分析
03.知识点小结:
E04-8.雷达图:多维度分析
最常见在大家的综合战力分析上,几乎每个游戏都会常常用到这种的对比。
03.知识点小结:
以前的案例示范:
E04-9.树状图:分级占比分析E04-10.旭日图:分级占比分析E04-10.直方图:区间分布分析
直方图更像简化版的正态分布图,它经常用于统计数值区间的分布,例如年龄段的人数、收入水平、工资收入分布等。
E04-12.瀑布图E04-13.组合图
E04.最后一招,数字放大法!
最后,大家把上面的所有图表拼合在一起,可得:
把大家所学的图表,一一放进去,可得到:
暂时补充到这里,如果想看动态图表的,请留言,偶抽空补充一下这方面的知识。
私信回复:基础图表,即可获得一份基础图表的源文件❤