<script>
常用属性。
async:可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7及更早版本对嵌入脚本也支持这个属性。
无论如何包含代码,只要不存在defer和async属性,浏览器都会按照<script>
元素在页面中出现的先后顺序对它们依次进行解析。换句话说,在第一个<script>
元素包含的代码解析完成后,第二个<script>
包含的代码才会被解析,然后才是第三个、第四个……
如果存在defer属性,延迟脚本并不一定会按照顺序执行,也不一定会在DOMContentLoaded事件触发前执行,因此最好只包含一个延迟脚本。
如果存在async属性,标记为async的脚本并不保证按照指定它们的先后顺序执行。
指定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。异步脚本一定会在页面的load事件前执行,但可能会在DOMContentLoaded事件触发之前或之后执行。
如果觉得此篇文章对您有帮助,希望可以请我喝雪碧!