《JavaScript高级程序设计》笔记(二)
一、在 HTML 中使用 JavaScript
1.1、<script>元素
HTML 4.01 为<script>定义了下列 6 个属性。
(1)async: 可选 表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或
等待加载其他脚本。只对外部脚本文件有效。
(2)charset:可选。表示通过 src 属性指定的代码的字符集。
(3)defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有
效。
(4)language:已废弃。
(5)src:可选。
(6)type:可选。
1.11、标签的位置:
把所有外部文件(包括 CSS 文件和 JavaScript 文件)的引用都放在相同的地方。在文档的<head>元素中包含所有 JavaScript 文件,意味着必须等到全部 JavaScript 代码都被下载、解析和执行完成以后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。对于那些需要很多 JavaScript 代码的页面来说,这无疑会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一片空白。为了避免这个问题,现代 Web 应用程序一般都把全部 JavaScript 引用放在<body>元素中页面内容的后面
CSS文件和JavaScript文件一起引入,需要JavaScript文件下载、解析和执行,才能显示页面,这时候浏览器可能为一片空白,此时可以将JavaScript引入放在<body>元素后面。
1.12、延迟脚本
HTML 4.01 为<script>标签定义了 defer 属性。这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。因此,在<script>元素中设置defer 属性,相当于告诉浏览器立即下载,但延迟执行。
<script>定义的defer属性,H5规定只适用于外部脚本文件
1.13、异步脚本
async 只适用于外部脚本文件,并告诉浏览器立即下载文件。但与 defer不同的是,标记为 async 的脚本并不保证按照指定它们的先后顺序执行。