下面是我的js函数代码。
console.log(window.performance.timing);
console.log(window.performance.timing.domContentLoadedEventStart);
当我通过运行我的js file
来运行上面的代码时,window.performance.timing
返回一个object
,其中domContentLoadedEventStart
有一些值。但是,当我试图打印window.performance.timing.domContentLoadedEventStart
时,它返回0。
不知道发生了什么。谁能解释一下。
发布于 2017-10-24 09:48:05
window.performance.timing
此属性有一个描述页面的PerformanceTiming
对象。
PerformanceTiming.domContentLoadedEventStart
PerformanceTiming.domContentLoadedEventStart
属性的值表示解析器发送事件之前的时刻,即自UNIX时代以来的毫秒内。
DOMContentLoaded
事件
DOMContentLoaded
事件是在初始的HTML被完全加载和解析后触发的,而不需要等待样式表、图像和子框架来完成加载。
window.performance.timing.domContentLoadedEventStart
给你0
的原因
您的脚本是在DOMContentLoaded
事件发生之前执行的,所以在解析器发送DOMContentLoaded
事件的那一刻,当时是未知的。
为了防止
为了防止PerformanceTiming.domContentLoadedEventStart
成为0
,您必须在DOMContentLoaded
事件发生后引用它。试试这个:
document.addEventListener("DOMContentLoaded", event => {
console.info("DOM fully loaded and parsed.");
console.info(window.performance.timing.domContentLoadedEventStart);
});
或
<script defer src="...">
。
https://stackoverflow.com/questions/46906562
复制相似问题