前言
在重新啃回JS权威指南时,学到了浏览器对于页面解析的一个顺序过程,所以在这里整理一下
正文
- 创建Document对象,并且开始解析页面
readyState
为loading
- 当遇到没有defer或async的
<script>
标签时,解析器会暂停,知道脚本文件下载和执行完成再重新启动 - 当遇到有defer或async的
<script>
标签时,解析器和脚本下载会同步执行 - 当文档完成解析后,
readyState
为interactive
,会触发DOMContentLoaded事件 - 文档解析完成后,但可能还有其他内容还没载入,例如图片。当所有的这些都载入后,
readyState
为complete
- 一切都完成后,就开始了异步事件的调用了,例如异步响应用户输入事件,网络事件等