javascript - `script` 和 `link as="script"` 标签之间的区别
问题描述
除了加载脚本的标准方法:
<script src="js/script.js"></script>
我见过人们这样做:
<link href="js/script.js" as="script">
有什么区别吗?
注意:有一个类似的 使用链接和脚本标签引用 JavaScript 源有什么区别?问关于的问题<link href="script.js" type="text/javascript" />
,这是不同的。
解决方案
如果该link
标签上有rel="preload"
(或rel="modulepreload"
),则表示预加载请求,该请求将预加载但不运行脚本。相反,script
加载并运行脚本。但是没有rel
,那link
是无效的并且没有有用的效果(至少在规范方面)。
如果您在规范中查找link
,您将看到as
列为:
as
— 预加载请求的潜在目的地(forrel="preload"
和rel="modulepreload"
)
在指向属性的链接之后as
,它说:
该
as
属性指定该属性给定资源的预加载请求的潜在目的地href
。它是一个枚举属性。每个潜在目的地都是该属性的关键字,映射到同名状态。必须在具有包含关键字link
的属性的元素上指定该属性。它可以在具有包含关键字的属性的元素上指定;在这种情况下,它必须有一个类似于脚本的目标值。对于其他元素,不得指定。rel
preload
link
rel
modulepreload
link
推荐阅读
- node.js - 在nodejs中定期检查?
- salt-stack - 在 shell 脚本中将参数传递给 salt-stack
- macos - 如何在 Visual Studio Code for Mac 中查看 NuGet 包实现源?
- node.js - 如何查询 mongoDB 以查看匹配记录是否存在,以及是否返回它以进行更新
- python - 如何从另一个 Screen 类访问 Kivy 类的值?
- algorithm - 在图上找到一个正的简单 st 路径是 NP 完全的?
- ruby-on-rails - 在 Heroku(Rails)上新建后“无法验证 CSRF 令牌的真实性”
- c# - 关闭 SqlConnection 不会关闭关闭 SQL 上的事务
- tensorflow - 如何在 keras-tuner 中为超参数训练选择优化器和学习率
- python - 如何使用带有多个子图的 matplotlib 吸引人地排列标题和轴标签等图形和文本?