0

下面是我的js函数代码。

console.log(window.performance.timing);
console.log(window.performance.timing.domContentLoadedEventStart);

当我通过运行 my 运行上述代码时js filewindow.performance.timing返回一个objectin 其中domContentLoadedEventStart有一些值。但是当我尝试打印时window.performance.timing.domContentLoadedEventStart,它返回 0。

不知道发生了什么。谁能给我解释一下。

4

1 回答 1

1

window.performance.timing

此属性有一个PerformanceTiming描述您的页面的对象。

PerformanceTiming.domContentLoadedEventStart

PerformanceTiming.domContentLoadedEventStart属性的值表示解析器发送事件之前的DOMContentLoaded时刻,以 UNIX 纪元以来的毫秒数为单位。

DOMContentLoaded事件

当初始 HTML 文档完全加载和解析时触发该DOMContentLoaded事件,无需等待样式表、图像和子框架完成加载。

window.performance.timing.domContentLoadedEventStart给你的理由0

您的脚本是在DOMContentLoaded事件发生之前执行的,因此在解析器发送DOMContentLoaded事件之前的那一刻,当时是未知的。

https://html.spec.whatwg.org/multipage/scripting.html

为了防止它

为了防止PerformanceTiming.domContentLoadedEventStart出现,您必须在事件发生0后引用它。DOMContentLoaded试试这个:

document.addEventListener("DOMContentLoaded", event => {
    console.info("DOM fully loaded and parsed.");
    console.info(window.performance.timing.domContentLoadedEventStart);
});

或者

<script defer src="...">

.

于 2017-10-24T09:48:05.773 回答