<script>元素的8个属性
- async :可选。表示应该立即开始下载脚本,但不能阻止其他页面动作,比如下载资源或等待其他脚本加载。只对外部脚本文件有效。
- charset:可选。
使用src属性指定的代码字符集。这个属性很少使用,因为大多数浏览器不在乎它的值。 - crossorigin:可选。配置相关请求的CORS(跨源资源共享)设置。默认不使用CORS。crossorigin="anonymous"配置文件请求不必设置凭据标志。crossorigin="use-credentials"设置凭据标志,意味着出站请求会包含凭据
- defer:可选。等于告诉浏览器立即下载但延迟执行。只对外部脚本文件有效。
- integrity:可选。允许比对接收到的资源和指定的加密签名以验证子资源完整性(SRI, Subresource Integrity)。如果接收到的资源的签名与这个属性指定的签名不匹配,则页面会报错,脚本不会执行。这个属性可以用于确保内容分发网络(CDN, Content Delivery Network)不会提供恶意内容。
- language:废弃。
最初用于表示代码块中的脚本语言(如"JavaScript"、“JavaScript 1.2"或"VBScript”)。大多数浏览器都会忽略这个属性,不应该再使用它。 - src:可选。表示包含要执行的代码的外部文件。
<script src="example.js"/>
<script src="http://www.somewhere.com/example.js"/>
- type:可选。代替language,表示代码块中脚本语言的内容类型(也称MIME类型)。
<script>的执行顺序
没有使用defer和async的属性的情况下是从上到下,第二个<script>元素的代码必须在第一个<script>元素的代码解释完毕才能开始解释。
2.2行内代码与外部文件
尽可能将JavaScript代码放在外部文件中,理由如下:
- 可维护性
- 缓存。两个页面都用到同一个文件,则该文件只需下载一次,这意味着页面加载更快
- 适应未来