已弃用的 domLoading 已删除!用什么代替?
Deprecated domLoading is removed! What to use instead?
domLoading 时间表示浏览器处理文档的最开始。
但是 domLoading 属性从 Timing 中删除 API: performance.getEntriesByType("navigation")[0].domLoading == undefined
我 found 2015 年 9 月 17 日的动机:
domLoading
属性已被弃用,可能会在本规范的未来版本中删除。由于在现有用户代理中创建 Document 对象的时间不同,domLoading 返回的值是特定于实现的,不应在有意义的指标中使用。
MDN 也没有说明应该使用什么。我觉得很奇怪,我没有发现任何关于这个的问题。 responseEnd 和 domInteractive 是我能看到的时间上最接近的属性,但它们相差太多。
如果在处理文档时不使用此属性,我无法知道文档需要多长时间 interactive, to get content loaded or to 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 刚刚开始解析页面。
domLoading 时间表示浏览器处理文档的最开始。
但是 domLoading 属性从 Timing 中删除 API: performance.getEntriesByType("navigation")[0].domLoading == undefined
我 found 2015 年 9 月 17 日的动机:
domLoading
属性已被弃用,可能会在本规范的未来版本中删除。由于在现有用户代理中创建 Document 对象的时间不同,domLoading 返回的值是特定于实现的,不应在有意义的指标中使用。
MDN 也没有说明应该使用什么。我觉得很奇怪,我没有发现任何关于这个的问题。 responseEnd 和 domInteractive 是我能看到的时间上最接近的属性,但它们相差太多。
如果在处理文档时不使用此属性,我无法知道文档需要多长时间 interactive, to get content loaded or to 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 刚刚开始解析页面。