延迟脚本与异步脚本

defer属性的用途是表明脚本在执行的时候不会影响页面的构造,即脚本会被延迟到整个页面都解析完毕后再运行。在<script>元素中设置该属性,相当于告诉浏览器立即下载,但延迟执行。如果有多个js文件都设置了defer属性,则按顺序执行。
async和defer相似,async只适用于外部的脚本文件,如果有多个js文件都设置了async属性,未必按顺序执行,有可能后面的js文件 先于前面的js文件,所以应确定两个js文件不依赖。所以这时候最好还是把js文件放在body底部,并且放在</body>之前。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>async</title>
    <script type="text/javascript" defer="defer" src="your01.js"></script>
    <script type="text/javascript" async src="your02.js"></script>
</head>
<body>
    
</body>
</html>


参考:《JavaScript高级程序设计》

原文地址:https://www.cnblogs.com/wgj32/p/5685869.html