<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module"
src="/src/main.js"
async defer
languge=""
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
charset="ISO-8859-1"></script>
</body>
</html>
script 有8个属性
type:可选 表示代码中脚本语言的内容类型【MIME类型】
type="application/javascript"
type="application/x-javascript"
type="application/ecmascript"
type="module"代码会被当成es6模块
src:可选 代表执行代码的外部文件
charset:可选,使用src属性指定的字符集 有两种
UTF-8 - Unicode 字符编码
默认ISO-8859-1 - 拉丁字母表的字符编码
crossorigin:可选,配置相关请求的CORS(跨源共享)设置默认不使用
crossorigin="anonymous"配置文件请求不必设置凭据标志
crossorigin="use-credentials" 配置文件请求设置凭据标志
defer:可选【推迟执行脚本】 表示脚本在执行的时候不会更改页面结构
脚本可以在文档解析和显示完成后再执行。只对外部脚本文件有效
async:可选【异步执行脚本】:代表应该立即开始下载脚本,但不能阻止其他页面动作 标记为async的脚本不保证按照出现的次序执行。只适用于外部脚本
integrity:可选 允许比对接收到的资源和指定的加密签名以验证子资源完整性
为了防止 CDN 篡改 javascript 用的。
什么时候会用到?当你遇到缓存问题的时候 要记得它
languge:废弃 用以表示代码块中的脚本语言


浅谈script标签的defer和async