面试中遇到过的一个问题:JS中DOMContendLoaded和load的区别?
DOMContentLoaded和load都是页面加载的时候触发的事件。区别在于触发的时机不一样。
浏览器渲染页面DOM文档加载的步骤:
-
解析HTML结构
-
加载外部脚本和CSS文件
-
解析并执行脚本代码
-
DOM树构建完成(此时会触发DOMContentLoaded事件)
-
加载外部图片等文件
-
页面加载完成(此时会触发load事件)
我们从以上DOM文档加载的步骤中可以看出:
当浏览器把DOM构建完成后就开始触发了DOMContentLoaded事件,而load事件则要等包括图片这些加载完毕才会触发。
我们监听事件的时候把优先级高的可以先监听DOMContentLoaded再监听load。