domcontentloaded 总是先于 window.onload 执行,因为前者在 html 解析完成、dom 树构建完毕后立即触发,不等待图片、css、js 等外部资源加载;后者必须等所有资源全部加载并解析完成后才触发。

DOMContentLoaded 一定先于 window.onload 执行,没有例外。只要页面 HTML 解析完成、DOM 树构建完毕,DOMContentLoaded 就会触发;而 window.onload 必须等所有资源(图片、CSS、JS、iframe、字体等)全部加载并解析完才触发。
为什么 DOMContentLoaded 总是更早?
浏览器加载页面时分阶段推进:HTML 解析 → DOM 构建 → CSS/JS 加载与执行 → 图片等资源加载。其中:
-
DOMContentLoaded在「DOM 构建完成」那一刻就触发,不关心后续资源是否卡在 CDN 或慢网中 -
window.onload要等到最后一个<img src="slow.jpg">的load事件也完成才算数 - 哪怕 CSS 文件阻塞了 JS 执行(如
<link rel="stylesheet">后紧跟<script></script>),DOMContentLoaded仍会在样式表解析完、DOM 可用后立即触发(注意:它依赖前序 CSS 的解析完成,但不等后续异步资源)
常见错误:误以为 script 放在 body 底部就能替代 DOMContentLoaded
把 <script></script> 放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











