1

只是想知道,看看w3c 处理模型,存在“dominteractive”事件。它可以通过性能 api 访问。无论如何有可能在其上绑定事件吗?

HTML 性能时序处理模型

在我看来,应该可以在这个早期阶段访问和操作 dom,因为 DOM 已完全加载,还是?

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

据我测试,无法通过 addEventListener 向 dominteractive 添加事件侦听器还是?

document.addEventListener("dominteractive")

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

4

1 回答 1

2

你必须监听事件readystatechange

// Log the initial readyState
console.log(document.readyState)  // loading

document.addEventListener('readystatechange', () => {
  // The first readyStateChange will be : interactive
  // The second readyStateChange will be : complete
  console.log(document.readyState)
});

因此,此 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 交互。

于 2020-12-23T20:45:36.253 回答