2021-11-16 14:30:27
浏览器渲染网页的过程可分为以下六个主要阶段,每个阶段均配有示意图辅助理解:
1. 开始解析HTML浏览器通过网络接收HTML数据后,解析器立即将其转换为文档对象模型(DOM)。

解析器遇到外部资源(如CSS/JS文件)时,会发起请求获取资源,但不同资源的加载行为不同:
defer:延迟执行,按脚本在文档中的顺序执行。
<script src="script.js" defer></script>async:加载后立即执行,执行顺序不确定。
<script src="script.js" async></script>
CSS文件需解析为CSS对象模型(CSSOM),与DOM类似但特性不同:

JavaScript由浏览器引擎(如V8)执行,优化解析对性能至关重要:
DOMContentLoaded:DOM解析完成后触发,适合操作DOM的脚本。
document.addEventListener('DOMContentLoaded', () => { // 安全操作DOM});load:所有资源(包括图片)加载完成后触发。
window.addEventListener('load', () => { // 页面完全加载});
渲染树是DOM与CSSOM的组合,表示需渲染的内容:


通过理解这六个阶段,开发者可针对性优化关键路径(如减少阻塞资源、合理使用defer/async),显著提升页面加载性能。