要让“打开网页速度很慢”的排查有结果,开始前至少要准备四类资料:可复现的慢速页面地址、完整的访问路径与设备信息、服务端与网络侧的观测数据、以及页面自身的资源清单。缺少其中任何一类,都只能停留在猜测。下面用一个假设例子说明准备步骤、两种处理方案的适用条件,以及常见错误。
假设某电商站的商品详情页在手机上打开需要八秒,桌面端只要三秒。要判断问题出在前端资源还是服务端响应,需要先收集以下资料,缺一项就会误判。
常见错误是只截一张“加载八秒”的图就开始改代码。没有设备、网络和入口信息,换一台设备可能完全复现不出来,改动也就无法验证。
拿到资料后,通常分成两条路线,选择依据是“慢发生在第一个字节之前还是之后”。
两条路线不是互斥的,但先改哪一条取决于资料指向哪一侧。若资料不足就同时大改,出问题后无法归因。
把下面几项逐条确认,能避免大部分返工。
如果某项无法确认,就把它标为“待验证”,不要当成已知结论写进排查记录。技术排查中要区分“可能原因”和“已经定位的原因”:页面慢可能由后端、网络、资源体积、第三方脚本中的任何一项造成,在数据指向之前不要断言唯一原因。
建议用一张表记录:页面地址、设备与网络、测试时间、首个字节时间、页面完全加载时间、主要资源体积。每次改动后填一行,对比前后两行即可判断是否有效。若用命令行工具,可记录类似 curl -o /dev/null -s -w "%{time_starttransfer}\n" 页面地址 的输出作为服务端响应参考;页面渲染层面的数据则用浏览器开发者工具的网络面板查看。注意这里记录的是参考值,不同网络和时段会有波动,应多次测量取中间水平,而不是只看一次最快或最慢的结果。
下一步:先选定一个可复现的慢速页面,按上面的清单补齐设备、网络、服务端和资源四类资料,再决定走服务端优先还是前端资源优先,改动一次只动一个变量。