JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了JavaScript – 导航定时API. domContentLoadedEventStart和domContentLoadedEventEnd之间发生了什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
W3C指定一个事件列表及其相应的用户代理必须返回的时间,如果他们想支持 Navigation Timing API.

您可以在这里看到的列表:http://www.w3.org/TR/navigation-timing/#process

了解哪一个过程涉及哪些事件在大多数情况下相当简单.但是,有一件事情,我不知道domContentLoadedEventStart和domContentLoadedEventEnd之间发生了什么.

这是我迄今为止所了解的,并且基于我的思

> domLoading // UA开始解析文档.
> domInteractive // UA已经完成解析文档.用户
可以与页面进行交互.
> domContentLoaded //该文档已经完全加载
解析和延迟脚本(如果有)已执行. (异步脚本,
如果有的话,可能或可能不会执行???)
> domComplete // DOM树是完全构建的.异步脚本,如果
任何,已执行.
> loadEventEnd // UA有一个完整的页面.所有资源,
像图像,swf等已经加载.

应该能够通过理解触发的事件#4(domCompletE)但是没有触发先前的事件来推断出第3阶段(domContentLoaded)之后发生了什么.

所以人们会认为“Async脚本(如果有的话)已经执行”意味着异步脚本在阶段#3之后但事件#4之前被执行.但是根据我的测试,这不是发生了,除非我的测试是错误的. (我试图复制我在JSFiddle上的测试,但是我不能使得所谓的/异步脚本工作,因为没有办法在外部脚本添加属性.)

所以我的问题是:domContentLoadedEventStart和domContentLoadedEventEnd之间发生什么过程?

解决方法

这些时间与domContentLoaded事件有关.这与loadEventStart和loadEventEnd的load事件相似.而不是使用负载,您使用DOMContentLoaded.

例如,添加DOMContentLoaded事件并运行其中的一些代码,应该给您一个不同的开始和结束.

document.addEventListener("DOMContentLoaded",function(event) {
    var j = 0;
    for (var i = 0; i < 10000000; i++) {
        j = i;
    }
});

一旦该事件运行,导航定时API将在开始和结束时间之间返回不同的时间戳,具体取决于事件运行多长时间.

从您指出的W3C文档中,我相信这些时间没有其他的进程.

大佬总结

以上是大佬教程为你收集整理的JavaScript – 导航定时API. domContentLoadedEventStart和domContentLoadedEventEnd之间发生了什么?全部内容,希望文章能够帮你解决JavaScript – 导航定时API. domContentLoadedEventStart和domContentLoadedEventEnd之间发生了什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。