JS中DOMContentLoaded和load的区别

774 阅读1分钟

面试中遇到过的一个问题:JS中DOMContendLoaded和load的区别?
DOMContentLoaded和load都是页面加载的时候触发的事件。区别在于触发的时机不一样。

浏览器渲染页面DOM文档加载的步骤:

  1. 解析HTML结构

  2. 加载外部脚本和CSS文件

  3. 解析并执行脚本代码

  4. DOM树构建完成(此时会触发DOMContentLoaded事件)

  5. 加载外部图片等文件

  6. 页面加载完成(此时会触发load事件)

我们从以上DOM文档加载的步骤中可以看出:
当浏览器把DOM构建完成后就开始触发了DOMContentLoaded事件,而load事件则要等包括图片这些加载完毕才会触发。
我们监听事件的时候把优先级高的可以先监听DOMContentLoaded再监听load。