默认情况下:html页面是按照顺序执行的。如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
<script src="main.js">
</script>
</head>
<body>
<div>hello world</div>
</body>
</html>
main.js内容:
alert("nihao");
异步加载 a:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
<script src="main.js" async="async">
</script>
</head>
<body>
<div>hello world</div>
</body>
</html>
异步加载 b:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
<script src="main.js" defer="defer">
</script>
</head>
<body>
<div>hello world</div>
</body>
</html>
上面两端代码的不同之处在于:同样是异步加载,使用属性defer="defer",异步下载main.js,等到整个html文档加载完成后,才去执行mian.js中的内容;而async="async"表示,异步下载main.js,main.js文件下载完成就可以执行。