Javascript AddEventListener dominteractive和access dom树

Javascript AddEventListener dominteractive和access dom树,javascript,html,performance,dom,domcontentloaded,Javascript,Html,Performance,Dom,Domcontentloaded,只是想知道,看看“多米诺互动”事件的存在。它可以通过性能api访问。是否有可能在其上绑定事件 在我看来,在这个早期阶段应该已经可以访问和操作dom了,因为dom已经被完全加载了,或者 我正在开发一个应用程序,它可以帮助我提高性能,让我安静很多。我不需要domContentLoaded上提供的完全css渲染屏幕,但是我喜欢快速检查dom结构中是否存在元素,如果存在,则异步加载其他资源 据我测试,通过addEventListener或 document.addEventListener("domi

只是想知道,看看“多米诺互动”事件的存在。它可以通过性能api访问。是否有可能在其上绑定事件

在我看来,在这个早期阶段应该已经可以访问和操作dom了,因为dom已经被完全加载了,或者

我正在开发一个应用程序,它可以帮助我提高性能,让我安静很多。我不需要domContentLoaded上提供的完全css渲染屏幕,但是我喜欢快速检查dom结构中是否存在元素,如果存在,则异步加载其他资源

据我测试,通过addEventListener或

document.addEventListener("dominteractive")

是否有解决方法,或者这只是缺少浏览器支持?

您必须收听该活动

因此,在文档交互之前,必须将此javascript代码内联到要执行的html文件中

否则,您可以添加如下保护:

if (document.readyState == "loading") {
  console.log(document.readyState);
  document.addEventListener('readystatechange', () => {
    console.log(document.readyState);
  });
} else {
  // document already interactive
  console.log(document.readyState);
}

此保护措施应该是无用的,因为您希望侦听dom interactive。

这不是事件,而是readyState。在执行脚本时,您至少会处于domInteractive状态anyway@th8472dominteractive也不是一个状态。适当的状态是“交互的”。我不确定readyState interactive。如果脚本是同步的,则在文档的交互状态之前执行,表示dom已关闭,并且在dominteractive模式更改时删除写入指针。对于asyn脚本,我不确定如果页面重载,脚本是轻量级的,并且在页面的开头会发生什么。根据规范,在这种情况下,它是否可能在到达dom Interactive之前执行?
if (document.readyState == "loading") {
  console.log(document.readyState);
  document.addEventListener('readystatechange', () => {
    console.log(document.readyState);
  });
} else {
  // document already interactive
  console.log(document.readyState);
}