技术解析

document 的 DOMContentLoaded 事件什么时候 readyState === 'complete' ?
0
2021-08-10 03:54:38
idczone

在文档最底部插入以下脚本:

document.addEventListener("DOMContentLoaded", function(event) { console.log(event.target.readyState); //这里的 readyState 一直是 'interactive' 吗? }, false);


你应该监听 readystatechange 事件。
https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState

好的。 但我还是好奇它在什么情况下会是 complete

HTML 被全部加载并且解析为 DOM 后就触发 DOMContentLoaded ; readyState 有三种状态,在子资源全部加载完成后才是 complete 。
MDN 一查就有解释

为了“子资源全部加载完成”, 我放了一张大图片。如下代码,可是还是没有监听到 complete?
https://gist.github.com/hm20062006ok/80fad49a847d83461eeaa2656ddae29e

......
你这段代码监听的是 DOMContentLoaded,那时候当然没加载完成啊。要按 说的监听 readystatechange 事件。

DOM 解析生命周期
异步脚本、延迟脚本与 DOMContentLoaded 的关系
https://www.cnblogs.com/Bonnie3449/p/8419609.html

数据地带为您的网站提供全球顶级IDC资源