大家肯定都听说过很多浏览器优化原则吧,例如说减少DOM操作,使用transformX(0)进行硬件优化,避免js文件执行时间过长使得页面卡顿等等。大部分人可能都知道,但也仅限于知道,即知其然,不知其所以然。
学习要形成自己的知识体系,否则的话,往往是东一榔头西一榔头地学习知识,这样导致学习到的知识松散,无法形成内在的联系,也就导致了学习地不够深入,只是浮于表面,只是“记住”了知识。
所以,接下来,我想来为大家梳理一下浏览器运行过程中需要理解的知识,如下:
前言
进程与线程
浏览器进程
浏览器都有哪些进程
浏览器内核(renderer进程)
html解析
css解析
render树
回流与重绘
什么时候会发生回流与重绘
具体什么操作会引起回流
如何减少回流
硬件加速
如何才能使用硬件加速
硬件加速使用z-index
浏览器页面的渲染流程
DOMContentLoaded和load事件
css堵塞情况
js堵塞情况
css和js文件应当放在html哪个位置
事件循环机制
宏任务和微任务
导致页面无法响应的原因
html文件解析过程
参考链接
# 进程与线程
可以这样理解:
- 进程是一个工厂,每个工厂有其独立的资源。
- 线程是工厂中的工人,可能只有一个,可能有好多个。多个工人协同完成工作。工人共享工作资源。