- 创建Document对象,开始解析Web页面。
- 遇到link外部css,创建线程加载,并继续解析文档
- 遇到Script外部JS,并且没有设置async.defer,浏览器加载,并阻塞,等待js加载完成并执行该脚本,然后继续解析文档
- 遇到Script外部JS,并且设置async.defer,浏览器创建线程加载,并继续解析文档(禁止使用document.write())
- 遇到img等先正常解析dom结构,然后浏览器异步加载src,并继续解析文档
- 文档解析完成
- 设置有defer的脚本按照顺序执行
- document对象触发DOMContentLoaded事件
- 当所有的async的脚本加载完成并执行后,img等加载完成,