深入浏览器内部谈性能优化

95 阅读3分钟

1. 浏览器发展历史


a. 1995年,美国网景公司因“网景浏览器”的发布而快速崛起
b. 同年,微软发布windows95,捆绑IE
c. 2002年,微软占据了浏览器市场80%的份额


2. 浏览器三大进化路线(Web应用能做的事以及未来发展趋势)

a)应用程序Web化,如:视频、音频、游戏

b) Web应用移动化,如:谷歌新推出的PWA方案

c) Web操作系统化,如,SOA,WebAssembly


3. 学习浏览器的重要性

a)准确评估Web开发项目的可行性
i.技术选型
ii.方案规划

b)从更高维度审视项目
i.用户体验
ii.整体观感

c)在快节奏的技术迭代中把握本质
i.脚本执行速度
ii.前端模块化开发


4. 进程与线程

a)概念
i.线程:用来处理程序任务,不能单独存在
ii.进程:
即是一个程序运行的实例。
启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程。
iii.
线程图解如下:
iv.
v.
线程是依附于进程的,而进程中使用多线程并行处理能提升运算效率

b)
进程与线程的四大特点
i.进程中的任意一线程执行出错,都会导致整个进程的崩溃。
ii.线程之间共享进程中的数据

1.如图:线程之间可以对进程的公共数据进行读写操作

2.
iii.当一个进程关闭之后,操作系统会回收进程所占用的内存
iv.进程之间的内容相互隔离





5.渲染流程:HTML+CSS+JS是如何渲染成页面的?


a)

从上图可以看出,左边的HTML、CSS、JS经过中间渲染模块的处理,变成了用户在屏幕上看到的元素

b)

由于渲染机制过于复杂,所以渲染模块在执行过程中会被划分为很多子阶段,输入的
HTML经过这些子阶段,最后输出像素。我们把这样的一个处理流程叫做渲染流水线。

如图:


c)按照渲染的时间顺序,流水线可分为如下几个子阶段:构建DOM树、样式计算、布局阶段、分层、绘制、分块、光栅化和合成



i.构建dom树

1.原因:浏览器无法直接理解和使用HTML,所以需要将HTML转换为浏览器能够理解的结构——DOM树

2.树结构:
a)
b)构建过程:
c)

ii. 样式计算

1.将CSS转化成浏览器能够理解的结构
a) CSS来源,如图所示
b)

2.转换样式表中的属性值,使其标准化
a)
3.计算出DOM树中每个节点的具体样式
a)
iii. 布局阶段
1.创建布局树
a)构造过程:
b)


1.以上是小编通过浏览器内部总结的性能优化,欢迎大家进行讨论,码字不易,求给个赞哦~
2.前端技术交流学习,尽在WEB光明顶(web.xingruanedu.com