<script>元素
HTML4.01为<script>定义了下列6个属性:
- async:可选属性,表示立即下载该脚本,只对外部脚本有效。
- charset:可选属性,通过src属性指定的代码字符集。
- defer:可选属性,表示脚本可以延迟到文档完全被解析和显示之后再执行,只对外部脚本有效。
- language:已废弃。
- src:可选属性,表示要执行代码的外部文件。
- type:可选属性,表示编写代码使用的脚本语言的内容类型(MIME类型)。
使用script元素的方式有两种:
- 直接在页面中嵌入JavaScript代码:在<script>内部的代码将被从上至下依次解析。
- 包含外部JavaScript文件:浏览器会按照引入顺序从上至下依次解析(被依赖的js文件要在依赖js文件的上面)。
(1)标签的位置
- 传统的做法:放在<head>元素中。
- 现代Web程序:放在<body>元素中的最后位置(避免出现加载空白的延迟)。
(2)延迟脚本
设置defer属性后,会告知浏览器脚本会被延迟到整个页面都被解析后再执行(立即下载,但延迟执行)。(3)异步脚本
设置async属性与defer相似,但async只适用于外部js文件,告知浏览器立即下载文件,但js文件执行顺序并不一定按照引入的先后顺序执行。(4)在XHTML中的用法
HTML5正在快速的被接受和采用,建议遵循H5标准。
这里提一下CDATA片段:<![CDATA[不需要被XML解析的内容]]>。(5)不推荐使用的语法
嵌入代码与外部文件
一般认为最好的做法还是引入外部文件,也就是说将写好的js代码封装到文件里,这么做的好处有:可维护性、可缓存(加快页面加载速度)、适应未来。文档模式
混杂模式和标准模式。<noscript>模式
<noscript>元素中的内容只会在不支持脚本和脚本被禁用的浏览器中显示出来,增加友好提示。
例如:123<noscript><p>本页面需要浏览器支持JavaScript</p></noscript>