as属性在预加载起什么作用_HTML资源类型精准指定

浅萱小哥_1938

浅萱小哥_1938

2026-05-02

555人浏览

原创

as属性不可省略,否则preload被忽略;字体预加载必须加crossorigin属性;图片用as="image"、视频用as="video";第三方资源需curl验证响应头与MIME类型。

as属性在预加载起什么作用_html资源类型精准指定

as属性不是可选的,漏掉就等于没写preload

浏览器看到 rel="preload" 但没带 as,会直接忽略这条 <link>——不报错、不警告、也不发请求。这不是兼容性问题,而是所有现代浏览器(Chrome、Firefox、Safari)的强制校验逻辑。

原因很简单:没有 as,浏览器无法判断这个资源该用什么优先级加载、要不要带 crossorigin、后续能不能被复用。它只能当普通 HTML 解析完再决定要不要加载,那就完全失去「预加载」意义了。

  • as="script" → 触发高优先级 JS 下载,并进入 JS 执行准备队列,后续 <script src></script> 或 import() 可直接复用
  • as="style" → 提前构建 CSSOM,影响 FOIT/FOUT 行为;写成 as="fetch" 就只进 HTTP 缓存,不参与样式解析
  • as="font" → 自动启用 CORS 请求流程;漏掉 crossorigin 属性,字体大概率加载失败(控制台报 CORS 错误)

字体预加载必须配crossorigin,且不能写值

WOFF2、WOFF 等字体文件几乎都托管在 CDN 上,跨域加载时,as="font" 本身就会让浏览器以 CORS 模式发起请求。但如果你只写 crossorigin="anonymous" 或 crossorigin="",行为是一样的;而写成 crossorigin="use-credentials" 反而可能出错(除非你真需要带 cookie)。

关键点是:只要存在 crossorigin 属性(无值),浏览器就按匿名 CORS 发起请求;服务端响应头里必须包含 Access-Control-Allow-Origin: * 或对应域名,否则预加载中断,且不会 fallback。

  • ✅ 正确:<link rel="preload" href="/fonts/inter.woff2" as="font" crossorigin>
  • ❌ 错误:<link rel="preload" href="/fonts/inter.woff2" as="font">(漏 crossorigin)
  • ❌ 错误:<link rel="preload" href="/fonts/inter.woff2" as="font" crossorigin="use-credentials">(多数 CDN 不支持带凭证的字体请求)

图片和视频的as值不能混用

as="image" 覆盖所有常见图片格式(JPEG、PNG、WebP、AVIF、SVG),但不包括视频封面图或 poster。如果预加载的是 .mp4 或 .webm 文件,且它会被 <video></video> 的 src 直接消费,就得用 as="video"。

Wechat Article Html
Wechat Article Html

将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。

下载

写错的后果很隐蔽:比如把首屏视频 poster 图写成 as="video",浏览器会按视频流方式处理(可能触发 range 请求、更激进的缓存策略),反而拖慢渲染;反过来,把真实视频写成 as="image",则无法被 <video></video> 复用,等于白加载。

  • 海报图(.jpg/.png)→ as="image"
  • 主视频资源(.mp4/.webm)→ as="video"
  • SVG 作为图标或内联资源 → as="image"(不是 as="document" 或 as="fetch")

第三方 CDN 资源预加载前先curl验证

不是所有 CDN 都允许 rel="preload" 请求。比如某些 Cloudflare Workers 路由默认拦截非标准 Accept 头的 preload 请求,返回 403;有些 unpkg 版本对未指定 type 的字体请求返回 404。

上线前务必用 curl 检查实际响应:

curl -I -H "User-Agent: Mozilla/5.0" https://cdn.example.com/script.js

重点看状态码、Content-Type 是否匹配你写的 type 属性(如 type="application/javascript"),以及是否有 Access-Control-Allow-Origin(跨域场景)。

容易被忽略的一点:即使 as 写对了,如果 CDN 返回的 MIME 类型和浏览器预期不符(比如 WOFF2 返回 text/plain),预加载也会静默失败——DevTools 的 Network 面板里看不到该请求,或者显示为 canceled。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

6635

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3692

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

3370

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

3379

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

5019

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

3321

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

3129

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2748

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2848

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 228人学习