使用<script>元素
1.1 <script>元素:通过使用<script>元素向HTML页面中插入 JavaScript ,<script>有以下几个属性(部分已很少使用)
async:可选。表示应立即下载脚本,但不妨碍页面中的其他操作。注意只对外部脚本有效。
defer:可选。表示通过脚本可以延迟到文档完全被解析和显示之后在执行。只对外部脚本有效。
src:可选。表示包含要执行代码的外部文件
type:可选。默认值是 text/javascript
1.2 在 HTML 中使用<script>元素
使用<script>元素的方式有两种:直接在页面中嵌入 JavaScript 代码和包含外部 JavaScript 文件
带有 src 属性的<script>元素不应该在其<script>和</script>标签之间再包含额外的 JavaScript 代码,否则会被忽略
包含在<script>元素内部的 JavaScript 代码江北从上至下依次解释。
无论如何包含代码,只要不存在 defer 和 async 属性,浏览器都会按照<script>元素在页面中出现的先后顺序对它们一次进行解析
为了避免浏览器在呈现页面时出现明显的延迟(延迟期间页面将是一片空白),一般都会将 JavaScript 引用放在<body>元素中页面内容的后面,即</body>之前。
1.3 延迟脚本 defer 属性
<script type="text/javascript" defer="defer" src="example.js"></script>
在<script>元素中设置 defer 属性,相当于告诉浏览器立即下载,但延迟执行(延迟到浏览器遇到</html>标签才执行)
HTML5规范要求脚本按照它们出现的先后顺序执行,因此第一个延迟脚本会先于第二个延迟脚本执行,而这两个脚本会先于DOMContentLoaded事件执行。在现实当中,延迟脚本并不一定会按照顺序执行,也不一定会在DOMContentLoaded事件触发前执行,因此最好只包含一个延迟脚本。
1.4 异步脚本 async 属性
async 属性是 HTML5 中的新属性。
async 属性规定一旦脚本可用,则会异步执行。不必等待其他脚本,也不必阻塞文档呈现
如果 async="async":脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)
如果不使用 async 且 defer="defer":脚本将在页面完成解析时执行
如果既不使用 async 也不使用 defer:在浏览器继续解析页面之前,立即读取并执行脚本
1.5 嵌入代码与外部文件
使用外部文件有可维护性、可缓存、适应未来的优点
可维护性:遍及不同 HTML 页面的 JavaScript 会造成维护问题,但把所有 JavaScript 文件放在一个文件夹中维护起来就轻松多了。
可缓存:浏览器能够根据具体的设置缓存链接的所有外部 JavaScript 文件,如果多个页面使用同一个 JavaScript 文件,那么只需要下载一次,最终结果就是能够加快页面加载的速度。
适应未来:通过外部文件包含 JavaScript 无须使用到 XHTML 注释 hack
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。