前端 白屏时间如何获取?
秒表。
注意手速要快。
(ง •̀ω•́)ง✧相信自己
-------------------分割线-----------------------------
当时用手机刷知乎,并不是太懂这个问题,匿名抖了个机灵,获得一些赞(比我一些认真的回答还多)非常惭愧。
但是一直没时间来细致了解这个问题。想来点赞的各位,可能也是手机刷刷知乎,也没时间细致了解。
@鲁小夫大神答案里的链接,翻译整理在这里(有删节并自己组织的语言),希望对那些没精力看高票答案代码的同志能有一些思路上的帮助。 本来想找更多的资料,但是限于能力精力,没有实现。
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次的平均时间,它需要根据视觉判断,是完全不对的。