关键资源明明不大,首屏为什么仍会被请求依赖关系拖慢?
简答题困难995 次浏览
参考答案与解析
# 核心结论
关键资源体积小,不代表它能早到达、早执行或早参与渲染。首屏速度取决于资源何时被浏览器发现、前置依赖有多少层、连接是否已经建立、服务器何时返回首字节、资源获得什么下载优先级,以及下载后需要多少解析、编译、解码和主线程执行时间。一个只有几千字节、却必须等待入口脚本执行、接口返回和条件判断后才被动态加载的资源,往往比一个体积更大但在主文档中静态声明的资源更晚完成。优化重点应是缩短关键请求链,而不是机械地减小文件或减少请求数量。
# 底层机制
浏览器接收主文档后,一边解析标记,一边借助预加载扫描机制提前发现静态声明的样式、脚本、图片和字体。阻塞样式会影响渲染树构建,普通同步脚本可能暂停文档解析;带 defer
