前端 白屏时间如何获取?

有说在<head></head>前后打时间戳计算差值就可以的,但是如果head之间没有其他资源如css,js等,这个差值会几乎为0,然后你在chrom…
关注者
295
被浏览
31,026
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

秒表。

注意手速要快。

(ง •̀ω•́)ง✧相信自己

-------------------分割线-----------------------------

当时用手机刷知乎,并不是太懂这个问题,匿名抖了个机灵,获得一些赞(比我一些认真的回答还多)非常惭愧。

但是一直没时间来细致了解这个问题。想来点赞的各位,可能也是手机刷刷知乎,也没时间细致了解。

@鲁小夫

大神答案里的链接,翻译整理在这里(有删节并自己组织的语言),希望对那些没精力看高票答案代码的同志能有一些思路上的帮助。 本来想找更多的资料,但是限于能力精力,没有实现。

First paint time · Issue #21 · w3c/navigation-timing · GitHub

问:为什么没把first paint time 写进标准里呢?希望您能把他加进去。

答:因为不能准确定义它啊,这个时间标准是模糊的。比如一些网页,他本来就是空白的啊,怎么来定义这个paint的时间呢?而且很多人并不在乎,什么时候画出第一个像素,他们想跟踪一下具体某个元素是什么时候画出来的。但是每个网站都不一样,我们不可能来定义太细的接口。所以不能加。

Frame Timing 可以让你跟踪画出来的时间,如果你真想追踪first paint(白屏) time,你得等我们有一些 Houdini pieces (不知道怎么翻译,没细看,求指正)才能有比较好的解决办法。


问:那为什么DevTools里面有呢?为什么不加个时间戳(从hidden到visible)? 我就是想知道,从点击进去到看到内容,用户等了多久,这个值是模糊的么?

答:在DevTools里有,并不是意味着他是一个好的标准。

如果想加时间戳来记录,你自己加就行了呗。

我只是认为,first paint 不够分量来写进标准,frame Timing 应该更有意义。但是需要时间。


另外,关于时间标准的模糊,quora上有个回答,我也无从分辨,暂时放在这里:

What does 'First Meaningful Paint' mean in Web Performance?


所以我抖的机灵,且不论能否测1k次的平均时间,它需要根据视觉判断,是完全不对的。