<Script>元素
属性
属性 | 值 | 描述 |
---|---|---|
async | async | 定义脚本是否异步执行。是H5的新属性。 |
type | text/ECMAScript text/JavaScript application/ECMAScript application/JavaScript text/VBScript |
指定脚本的MIME类型。 |
charset | charset | 定义脚本中使用的字符编码。不支持。 |
defer | defer | 指示脚本不会生成任何文档内容。浏览器可继续解析并绘制页面。 |
language | JavaScript LiveScript VBScript ... |
HTML5中不支持 |
src | URL | 定义只想包含脚本的文件的URL(这样就可以引用某个包含脚本的文件,而不是直接把脚本插入到HTML文档中) |
xml:space | preserve | HTML5中不支持。 |
位置
- <script>元素放在<head>元素中。惯例做法,但会导致页面呈现延迟。
- <script>元素放在<body>元素中、页面内容后。
所有<script>元素都会按照它们在页面中出现的先后顺序依次被解析。
延迟脚本
defer
- 使得脚本在执行是不会影响页面的构造。
其实就是:使得<script>放在<head>中但不造(很大的)成页面加载延迟。
举个栗子:
<!DOCTYPE html>
<html>
<head>
<title> EXAMPLE</title>
</head>
<body>
<!-- 这里放内容 -->
<script type="text/javascript" defer="defer" src="example1.js"></script>
<script type="text/javascript" defer="defer" src="example2.js"></script>
</body>
</html>
异步脚本
async
|defer|async
----|----|----
异|让脚本在文档完全呈现之后再执行。总是按照指定的先后顺序执行|可以表示当前脚本不必等待其他脚本。不一定按照指定的顺序执行
- 同:都用于改变处理脚本的行为;都只适用于处理外部脚本文件。