domLoading时间代表浏览器处理文档的最开始。
但是domLoading属性已从Timing API中删除:performance.getEntriesByType("navigation")[0].domLoading == undefined
我found从2015年9月17日开始的动机:domLoading
属性已过时,在本规范的将来版本中可能会删除。由于在现有用户代理中创建Document对象的时间不同,domLoading返回的值是特定于实现的,因此不应在有意义的指标中使用。
MDN都没有告诉要使用什么。我没有发现关于此的任何问题,这很奇怪。我可以看到,responseEnd和domInteractive是时间上最接近的属性,但是它们相差太大。
没有此属性可用于处理文档,我不知道文档成为interactive,获取content loaded或成为complete需要多长时间。
是否有任何我想念或可以用来代替的正确衡量和比较参考?
var nt = performance.getEntriesByType("navigation")[0],
/* domLoading = nt.domLoading; <<< Error: undefined */
domLoading = nt.responseEnd; //Not correct? Hopefully same.
console.log("Dom parsed in " + (nt.domInteractive - domLoading) + " ms")
console.log("Dom ready in " + (nt.domContentLoadedEventStart - domLoading) + " ms")
console.log("Dom complete in " + (nt.domComplete - domLoading) + " ms")
我在w3c.github.io上发现了这个新的时间表,表明没有可以测量的dom起点。
最佳答案
w3c标准说domLoading is no longer in PerformanceNavigationTiming
Chrome和Firefox设置performance.domLoading == undefined
,但该属性仍然存在。您可以在控制台中看到它。
console.log(JSON.stringify(performance.timing).split(/[{,}]/).join('\n'))
将其放在
<head>
的开头以将其取回:<script>
Performance.prototype.domLoading = performance.now()
</script>
这是可行的,因为DOM刚开始解析页面。