不推荐将 JS 嵌入HTML代码
众多开发者都不推荐将 JS 嵌入 HTML 代码,即使不强制外部加载 JavaScript 文件,原因很多,一般为这些:
- 方便维护:分开编辑,条理更清晰
- 缓存加载:如果有两个页面用同一个JS,浏览器会优化只下载一次
可兼容性:XHTML标准下外部JS不受影响(目前可见情况不多)
外部加载 JavaScript 文件
一般的,所有的外部 <script>
标签放在 <head> or <body>
中,在这种情况下,是先加载js还是先渲染dom结构,就决定了页面的呈现过程和最终效果。
<!DOCTYPE html>
<html>
<head>
<script src="example.js"></script>
</head>
<body>
<!-- insert your content -->
</body>
</html>”
此时无论是放在 head 还是 body 中都会遇到一定的问题,需要通过异步或者延迟来解决。
async 异步加载
<script src="example.js" asnyc></script>
只需要加入 async=“async” 就告诉了浏览器开始时就要下载 example.js,async属性的js文件皆会在文档初始化时开始加载。但最终加载完毕开始执行
的顺序是不一定的。
defer 延迟加载
<script src="example.js" defer></script>
加入 defer 属性的js文件将会在整个文档加载完毕后开始加载并执行,所以这必须是外部的js文件。