script
-
属性:
src:可选。表示包含要执行的代码的外部文件。
async:可选。表示应该立即开始下载脚本,但不能阻止其他页面动作,比如下载资源或等待其他脚本加载。只对外部脚本文件有效。
defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。在IE7 及更早的版本中,对行内脚本也可以指定这个属性。
charset:可选。使用src 属性指定的代码字符集。这个属性很少使用,因为大多数浏览器不在乎它的值。
crossorigin:可选。配置相关请求的CORS(跨源资源共享)设置。默认不使用CORS。crossorigin="anonymous"配置文件请求不必设置凭据标志。crossorigin="use-credentials"设置凭据
标志,意味着出站请求会包含凭据。
integrity:可选。允许比对接收到的资源和指定的加密签名以验证子资源完整性(SRI,Subresource Integrity)。如果接收到的资源的签名与这个属性指定的签名不匹配,则页面会报错,
脚本不会执行。这个属性可以用于确保内容分发网络(CDN,Content Delivery Network)不会提供恶意内容。
language:废弃。最初用于表示代码块中的脚本语言(如"JavaScript"、"JavaScript 1.2"或"VBScript")。大多数浏览器都会忽略这个属性,不应该再使用它。 -
解释顺序:包含在<script>内的代码会被从上到下解释。
在<script>元素中的代码被计算完成之前,页面的其余内容不会被加载,也不会被显示。
所以如果把所有JavaScript文件都放在<head>里,也就意味着必须把所有JavaScript 代码都下载、解析和解释完成后,才能开始渲染页面
(页面在浏览器解析到<body>的起始标签时开始渲染)。对于需要很多JavaScript 的页面,这会导致页面渲染的明显延迟,在此期间浏览器窗口完全空白。
为解决这个问题,现代Web 应用程序通常将所有JavaScript 引用放在<body>元素中的页面内容后面,这样一来,页面会在处理JavaScript 代码之前完全渲染页面。
用户会感觉页面加载更快了,因为浏览器显示空白页面的时间短了。
<!DOCTYPE html>
<html>
<head>
<title>Example HTML Page</title>
</head>
<body>
<!-- 这里是页面内容 -->
<script src="example1.js"></script>
<script src="example2.js"></script>
</body>