2.1.3 异步脚本
HTML5为<script>元素定义了 async 属性。用于改变处理脚本的行为。
与 defer 类似,async 只适用于外部脚本文件,并告诉浏览器立即下载文件。
与 defer 不同的是,标记为 async 的脚本并不保证按照指定他们的先后顺序执行。(即不保证执行顺序)。例如:
<!DOCTYPE html>
<html>
<head>
<title>Example HTML Page</title>
<script type="text/javascript" async src="example1.js"></script>
<script type="text/javascript" async src="example2.js"></script>
</head>
<body>
<!-- 这里放内容 -->
</body>
</html>
在上面的代码中,第二个脚本文件可能会在第一个脚本文件之前执行。
因此,确保两者之间互不依赖非常重要。
指定 async 属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。
异步脚本一定会在页面的 load 事前前执行,但可能会在 DOMContentLoaded 事件触发之前或之后执行。支持异步脚本的浏览器有:Firefox 3.6、Safari 5 和 Chrome。
在XHTML文档中,要把 async 属性设置为 async="async"。