JavaScript 红宝书笔记 - 第 2 章. HTML 中的 JS
属性
async
属性
加载外部脚本文件,通知浏览器立即下载,异步执行(不保证按出现次序执行)。
保证会在
load
事件之前执行,可能会在DOMContentLoaded
事件之前或之后。
defer
属性
脚本可以延迟到文档被完全解析和显示后(解析到<\html>标签之后)再执行,仅对外部脚本有效。
都会在
DOMContentLoaded
事件之前执行。不一定总会按顺序执行或者在DOMContentLoaded
事件之前执行。因此最好只包含一个这样的脚本。
若没有以上两种属性,脚本将按在 <script>
中出现的顺序解析。
标签位置
传统的方法是将所有 <script>
元素都放在 <head>
中,这样做的话将会解析完所有 JS 代码之后才会渲染页面,所以为解决这个问题可以将所有 JS 引用放在 <body>
元素的页面内容后面。
<noscript>
元素
通过使用 <noscript>
元素,可以指定在浏览器不支持脚本时显示的内容。如果浏览器支持并启用脚本,则 <noscript>
元素中的任何内容都不会被渲染。