缓存命中率很高,首屏还是慢,可能卡在哪?
简答题中等1187 次浏览
参考答案与解析
缓存命中只说明「这个文件不用再从网络下载」,并不代表它马上能变成屏幕上的内容。命中之后,JS 还要解析、编译、执行,图片还要解码,协商缓存还要跑一趟网络确认,首屏依赖的接口数据也往往没进缓存。所以命中率高、首屏慢很常见,要把「拿到文件之后」的时间也算进来。
速记要点
- 命中只省了下载,没省解析、执行和解码
- 304 协商缓存仍要一次往返
- HTML 和首屏接口通常不走缓存
- 看首屏关键路径,而不是总体命中率
- 缓存原图要按显示尺寸出缩略图
1. 命中缓存之后还要做哪些事
一个 JS 文件从强缓存里取出来,到页面能用,还要走完这条链路:
读磁盘缓存 → 解析 → 编译 → 执行模块顶层代码 → 渲染
