网站测速白屏怎么回事:总耗时短,白屏却可能很长
一秒多,可白屏四秒
客户发来一条测速结果,总耗时一点二秒,问我为什么他打开要等四秒。
我一开始也怀疑他记错了,后来自己清缓存打开,确实等了好几秒,才发现我们说的是两件事。
两个时间算的不是一件事
分开看,才不会互相否定,也才知道该改哪边。
测速的总耗时,是从发起请求到最后一个字节接收完,包含所有资源的收尾。
用户感知的白屏,是到首屏出现可见内容为止,后面加载什么都不影响他的第一印象。
这两个时间之间,隔着脚本执行、样式计算、字体加载和首次渲染,全是浏览器干的活。
从结果里能推什么
测速不能直接测白屏,但能给出线索,够用来排除一半可能。
TTFB 很长,白屏一定会跟着长,因为主文档都没回来,浏览器无从开始。
TTFB 正常,但下载段里有几个大资源,关键资源晚到也会拖住首屏,哪怕总耗时很好看。
状态码 200 也不能说明没问题,返回空体照样白,这个坑踩过不止一次。
用宝塔拨测的网站测速跑多地区多运营商节点,五段和状态码一起看,能先排除传输层的白屏原因,剩下的再往渲染找。
白屏往往卡在关键路径
这一段占白屏时间的大头,改它收益也最大。
同步脚本放在头部,会阻塞渲染,白屏时间直接加倍,这是最常见的一处。
关键 CSS 太大或者要额外请求,样式没到就什么都不显示,用户只能盯着白屏。
字体文件缺失,文字会先不可见,看起来像白屏,其实内容早就下载完了。
怎么实测白屏
工具给不了,就自己量,两分钟的事。
换一个干净环境,清缓存,从头打开一次,用秒表大致计时,别太精确反而够用。
看屏幕第一次出现内容是在几秒,记下来,这就是用户真实感受的那个数。
再看这个时间点和网络面板里哪个资源完成时间接近,那个资源就是头号嫌疑。
优化顺序与复测
先处理阻塞渲染的脚本和样式,收益最直接。
再处理首屏图片和字体,尺寸和格式一起看。
非关键资源全部延后,别和首屏抢带宽。
改完用同一组节点复测,同时自己再清缓存打开一次。
两个数都改善,才算真的不白屏,只改一边很容易自嗨。
只改一项就宣布解决,很容易被下一次投诉打回来,也浪费一次信任。
白屏这件事,数字和眼睛都得用上。
用上,判断就不会只停在报表。
停在报表,优化就会跑偏。
不跑偏,改完才见效。
见效了,用户就不再说白屏。
不说白屏,才叫真的解决。