JavaScript高级程序设计读书笔记-第2章

<script>元素

HTML4.01为<script>定义了下列6个属性:

  • async:可选属性,表示立即下载该脚本,只对外部脚本有效。
  • charset:可选属性,通过src属性指定的代码字符集。
  • defer:可选属性,表示脚本可以延迟到文档完全被解析和显示之后再执行,只对外部脚本有效。
  • language:已废弃。
  • src:可选属性,表示要执行代码的外部文件。
  • type:可选属性,表示编写代码使用的脚本语言的内容类型(MIME类型)。
    使用script元素的方式有两种:
  1. 直接在页面中嵌入JavaScript代码:在<script>内部的代码将被从上至下依次解析。
  2. 包含外部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>元素中的内容只会在不支持脚本和脚本被禁用的浏览器中显示出来,增加友好提示。
    例如:
    1
    2
    3
    <noscript>
    <p>本页面需要浏览器支持JavaScript</p>
    </noscript>