讲师中心 微信公众号
AI工具推荐 视频效率加速

浏览器缓存中怎么理解 Prefetch 和 Preload 预加载指令在触发浏览器底层缓存池分配时的优先级差异

梦静酱_7164

梦静酱_7164

发布时间:2026-07-25 16:08:58

|

629人浏览过

|

来源于php中文网

原创

Preload进当前页专用高优资源池,生命周期绑定本次导航;Prefetch进长期HTTP缓存,按Cache-Control存续。二者路径隔离、不可复用,触发时机、优先级、缓存机制均不同。

浏览器缓存中怎么理解 prefetch 和 preload 预加载指令在触发浏览器底层缓存池分配时的优先级差异

Preload 和 Prefetch 在浏览器缓存系统中根本不是“进同一个池子”,它们各自走完全独立的缓存路径,底层机制和生命周期也截然不同。

Preload 进的是“当前页高优资源池”

它不进常规 HTTP 缓存,而是进入一个专为本次导航(navigation)服务的临时资源池。这个池子只对当前页面生命周期有效,页面卸载后资源就丢弃,哪怕 URL 完全相同也不会被后续页面复用。

  • 触发时机极早:HTML 解析阶段就发起请求,优先级为 Highest 或 High,会抢占带宽
  • 必须带 as 属性(如 as="font"),否则可能降级为普通 fetch,无法参与渲染关键路径
  • 加载完成即可用,但不会自动执行或应用(比如预加载的 CSS 不会自动生效,仍需 <link rel="stylesheet"> 引入)
  • 即使目标资源有强缓存头,Preload 也只管本次页面——它不依赖 Cache-Control,也不受其限制

Prefetch 进的是“长期 HTTP 缓存”

它走标准的 HTTP 缓存流程,下载的资源会被存入主磁盘/内存缓存区,按 Cache-Control 等响应头决定是否可复用、保留多久。但前提是:资源本身得允许被缓存。

page-agent 浏览器控制(CDP)
page-agent 浏览器控制(CDP)

使用 page-agent CLI(CDP)控制浏览器;CLI只能通过 GitHub Release 的 .tgz 安装,npm 官方包暂未发布。

下载
  • 触发时机很晚:必须等 window.onload 完成、主线程空闲、网络无高优任务时才尝试发起
  • 优先级为 Low,容易被跳过(省流模式、内存紧张、2G 网络、页面提前跳转都会导致不发请求)
  • as 属性不是可选的:写错或缺失会导致请求降级,甚至静默失败——浏览器不知道该加什么 Accept 头、是否要 CORS,也就无法正确存入对应缓存槽位
  • 若响应头是 Cache-Control: no-store 或 no-cache,浏览器连缓存都不建,Prefetch 直接失效

两者缓存不可互通,也不能互相替代

同一个 /main.woff2 文件,用 Preload 加一次、Prefetch 加一次,浏览器会分别存两份,互不感知。因为 Preload 的资源没走 HTTP 缓存校验逻辑,而 Prefetch 的资源又没进 Preload 那个“马上要用”的调度队列。

  • 想让字体在首屏立刻渲染?用 <link rel="preload" as="font" crossorigin>
  • 想让用户点“下一步”时秒开?且该资源已设 public, max-age=31536000?再加一条 <link rel="prefetch" as="script" href="/next-page.js">
  • 别把 Prefetch 当 Preload 用——它不会提升首屏性能;也别指望 Preload 能为下个页面省流量——它压根不进长期缓存

验证是否真进了缓存池

别只看 Network 面板默认标签页。Chrome DevTools 中要打开 Network → 右上角过滤器输入 is:prefetch 才能看到 Prefetch 请求;Preload 请求则通常标记为 Priority: Highest 或出现在 HTML 解析早期。

  • Prefetch 没出现?先确认 onload 是否已触发、页面是否稳定停留超 1s、是否开了省流模式
  • Preload 加了但字体还是闪?检查是否漏了 crossorigin(字体跨域必需)、as="font" 是否拼写正确、WOFF2 MIME 类型是否匹配

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

相关专题

更多
OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

40

2026.10.16

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

20

2026.10.16

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

20

2026.10.16

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

20

2026.10.16

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

20

2026.10.16

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

20

2026.10.16

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

40

2026.10.15

MySQL 忘记密码怎么办
MySQL 忘记密码怎么办

MySQL忘记密码专题汇集不同版本与系统下的root密码重置方法,覆盖MySQL 5.7、8.0、Mac、Linux及本地集成环境,并提示恢复权限与重新登录的检查步骤。

20

2026.10.15

Vue.js 中 ref 和 reactive 的区别
Vue.js 中 ref 和 reactive 的区别

Vue.js中ref和reactive的区别专题汇集两种响应式API的定义、访问方式、对象解构、侦听与性能取舍等文章,帮助结合实际状态类型选择合适写法。

20

2026.10.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
燕十八nginx精品视频教程
燕十八nginx精品视频教程

共23课时 | 8万人学习

php-src源码分析探索
php-src源码分析探索

共6课时 | 0.7万人学习

Golang云原生架构师课程
Golang云原生架构师课程

共49课时 | 4.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn