为什么浏览器加载网页很慢
为什么浏览器加载网页很慢?很多人第一反应是清缓存、换浏览器。缓存只解决一小部分情况。
真正要先分的,是慢在传输还是慢在渲染。这两件事不在一条线上。
| 看到的现象 | 落在哪 | 先查什么 |
|---|---|---|
| 转圈很久才出内容 | 传输段 | 看五段哪段长 |
| 内容出来了但排版乱 | 渲染 | 看控制台报错 |
| 首屏一片空白 | 下载或渲染 | 先看下载段,再看控制台 |
| 只有某些页面慢 | 页面本身 | 按页面分组 |
| 只有某台电脑慢 | 本机 | 换设备对照 |
换个浏览器就快,说明是浏览器的问题吗?
不一定。换浏览器同时也换了缓存和扩展。
系统浏览器快、原来那个慢,才算浏览器的问题。
两个浏览器一样慢,问题在站点或链路。
换浏览器时最好也用同一个网络,不然两个变量一起动了。
要判断,得同一个网络、同一台机器、同一条地址。
五段里哪一段最长,才是真正的瓶颈吗?
五段是 dns、tcp、tls、ttfb、下载。
用一条命令打出来:
`` curl -o /dev/null -s -w 'dns=%{time_namelookup} conn=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' https://你的域名 ``
五个数是累计值,段耗时要相减。最长的那段就是主因。
一个人测只代表一条线。用宝塔拨测的网站测速多地区一起跑,按地区分组看,才分得清是局部还是全局。
只有这一台电脑慢,还要不要查站点?
先别查站点,先把范围锁在本机。
用手机流量再开一次。手机快、电脑慢,问题在这台机器。
换一台电脑也慢,范围立刻升到链路。
只有某个浏览器慢,再切一层:清缓存、禁扩展,各试一次。
还有一层容易漏:这台电脑是不是挂着代理或 VPN。挂着代理时,测出来的是代理的速度,不是你家宽带。
测速很快但页面还是慢,是谁在拖?
测速测的是传输,不测排版和脚本执行。
五段加起来一秒,用户体感五秒(举例),差的几秒在渲染侧。
去网络面板看瀑布:哪个资源排队、哪个脚本阻塞、有没有第三方在等。
两边对不上时,以体感为准查前端,别拿测速报告反驳用户。
首屏大图、字体文件、统计脚本,这三样最容易拖住渲染。
改的时候一次只动一处,改完再测一遍,否则说不清是谁起的作用。
有一点我没确认:浏览器扩展对同一个页面的影响有多大,我手上没有逐扩展的对照,只能按「全禁用再逐个打开」这个动作测。