第3章
前端开发基础
本章首先介绍Web前端开发的基本知识,然后介绍Vue.js入门,最后介绍Node.js入门。
3.1Web前端
本节介绍Web前端的基础知识,主要包括浏览器架构、HTML、CSS、渲染流程和JavaScript。
3.1.1浏览器架构
通常,浏览器架构如图31所示,最上层是用户界面(User Interface),主要负责与用户的交互,包括地址栏输入、刷新/向前/后退、书签、浏览记录、偏好设置等功能。
图31浏览器架构
下面一层是浏览器引擎(Browser Engine)。协调上层的用户界面和下层的渲染引擎(Rendering Engine)。浏览器引擎主要是实现浏览器的动作(初始化加载、刷新、向前、后退等)。
渲染引擎则是为给定的URL提供可视化展示,它解析HTML、XML、JavaScript。不同的浏览器使用不同的渲染引擎。例如,IE使用Trident,Firefox使用Gecko,Safari、Chrome和Opera使用Webkit。
最底层是一些组件库。XML解析器(XML Parser)负责解析XML。Firefox使用的是Expat库,Chrome使用的是libXML库。网络模块负责基于HTTP和FTP处理网络请求,还提供文档的缓存功能以减少网络传输。JavaScript解释器负责解释执行页面的JavaScript代码,将得到的结果传输给渲染引擎。Chrome用的是C++实现的V8引擎,Firefox用的SpiderMonkey。UI 后端是UI的基础控件,实现隔离平台,提供与平台无关的接口给上层。数据存储模块则负责对用户数据、书签、Cookie和偏好设置等数据的持久化工作。
3.1.2用HTML生成内容
HTML(HyperText Markup Language,超文本标记语言)是一种用于创建网页的标准标记语言,用来描述网页的内容。HTML 使用标记标签(Tag)来描述网页,通常包含HTML标签及文本内容。HTML标签通常是成对出现的,比如和。标签内可以嵌套标签。
Title
Heading 1
This is a paragraph.
This is a paragraph.
上述代码在浏览器中的显示如图32所示。
HTML运行在浏览器上,由浏览器来解析,生成DOM(Document Object Model,文档对象模型)树。DOM树是由HTML文件解析生成代表内容的树状结构。比如下列HTML代码生成的DOM树如图33所示。
A few quotes
Franklin said that "A penny saved is a penny earned."
FDR said "We have nothing to fear but fear itself."
图32HTML在浏览器中的显示
图33DOM树案例
3.1.3用CSS生成样式
CSS(Cascading Style Sheets,层叠样式表) 用于控制网页的样式和布局。CSS 3是最新的CSS标准。CSS不能单独使用,必须与HTML或XML一起协同工作,对HTML或XML起装饰作用。其中,HTML负责确定网页中有哪些内容,CSS确定以何种外观(大小、粗细、颜色、对齐和位置)展现这些元素。CSS可以用于设定页面布局、设定页面元素样式、设定适用于所有网页的全局样式。CSS可以零散地直接添加在要应用样式的网页元素上,也可以集中内置于网页、链接式引入网页以及导入式引入网页。
下列CSS代码中定义了doc、title、para的样式,以及class值为"emph"的元素的样式。
/* rule 1 */ doc { display: block; text-indent: 1em; }
/* rule 2 */ title { display: block; font-size: 3em; }
/* rule 3 */ para { display: block; }
/* rule 4 */ [class="emph"] { font-style: italic; }
图34CSSOM树案例
同样,由CSS代码解析生成的样式规则的树状结构称为CSSOM(CSS Object Model,层叠样式表对象模型)树,如图34所示。
图35所示的内容树(Content Tree)则同时包含内容和样式信息。
图35内容树案例
3.1.4渲染流程
渲染树(Render Tree)是渲染流程的输出目标。它包含具有显示属性(颜色和大小)的长方形组成的树状结构。如图36所示,渲染的目标就是将最初写的页面内容HTML、样式CSS渲染为最后的渲染树,然后调用系统图形API来显示。
图36渲染树案例
渲染流程如图37所示。
图37渲染流程
(1) 解析。解析HTML/SVG/XHTML文件,产生DOM树; 解析CSS文件生成CSSOM树。
(2) 附着合成。DOM树和CSSOM树连接在一起合成内容树。
(3) 布局。通过内容树计算出渲染树每个节点的具体大小和位置。
(4) 绘制。调用系统图形API,通过显卡,将布局后的节点内容分别呈现到屏幕上。
3.1.5用JavaScript完成交互
用HTML和CSS已经可以显示页面的静态内容,但是网页还需要与用户服务器进行交互。所以,可以用JavaScript语言完成与用户的交互。可以直接在HTML文件中加入JavaScript脚本,也可以使用单独的文件,再导入。JavaScript语言可以通过API完成对DOM树和CSS树的操作,可以完成与用户的交互,完成与远端服务器的交互,也可以执行简单的前端和业务的逻辑。
1. 脚本在HTML文件中
下面是一个脚本在HTML文件中的例子。通过