JAVAScript第二章
<\script>[1]元素特征
向 HTML页面中插入 JavaScript的主要方法,就是使用<\script>元素。HTML 4.01为 <\script>定义了下列 6个属性。
- async:表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或 等待加载其他脚本。只对外部脚本文件有效。
- charset:表示通过 src 属性指定的代码的字符集。由于大多数浏览器会忽略它的值, 因此这个属性很少有人用。
- defer:表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有 效。IE7及更早版本对嵌入脚本也支持这个属性。
- language:已废弃。原来用于表示编写代码使用的脚本语言(如 JavaScript、JavaScript1.2 或 VBScript)。
- src:表示包含要执行代码的外部文件。
- type:可以看成是 language 的替代属性;表示编写代码使用的脚本语言的内容类型(也称为 MIME类型)。
1、<\script>元素的用法
使用<\script>元素的方式有两种:直接在页面中嵌入 JavaScript 代码和包含外部 JavaScript 文件。
区别:
- 在使用<\script>元素嵌入 JavaScript代码时,只须为<\script>指定 type 属性
- 如果要通过<\script>元素来包含外部 JavaScript 文件,那么 src 属性就是必需的。这个属性的值 是一个指向外部 JavaScript文件的链接,
例如: <\script type="text/javascript" src="example.js"></script> - 需要注意的是,带有 src 属性的<\script>元素不应该在其<\script>和</script>标签之间再 包含额外的 JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码 会被忽略。
2、标签的位置
所有<\script>元素都应该放在页面的<\head>[2]元素中,例如:
微信图片_20190714001622.png
这种做法的目的就是把所有外部文件(包括 CSS文件和 JavaScript文件)的引用都放在相同的地方。 可是这样会导致网页加载延迟,为了避免这一麻烦,现代 Web 应用程序一般都把全部 JavaScript引 用放在<\body>元素中页面内容的后面,如下例所示:
微信图片_20190714001814.png
3、延迟脚本
HTML 4.01为<\script>标签定义了 defer 属性。在<\script>元素中设置 defer 属性,相当于告诉浏览器立即下载,但延迟执行,意思是要等到所有文件全部加载完,才显示效果。
4、异步脚本
这个属性与 defer 属性类似,其与defer 类似,async 只适用于外部脚本文件,并告诉浏览器立即下载文件。但标记为 async 的脚本并不保证按照指定它们每个文件执行的先后顺序。
5、在XHTML中的用法
由于在XTML中,如果使用<后面跟空格的写法,会导致解析的时候出错,为了避免这一麻烦,一是可用相应的 HTML实体(& l t;)替换代码 中所有的小于号(<)。 第二个方法就是用一个 CData片段来包含 JavaScript代码:
微信图片_20190714004535.png
外部文件的优点
- 可维护性:遍及不同 HTML页面的 JavaScript会造成维护问题。但把所有 JavaScript文件都放在 一个文件夹中,维护起来就轻松多了。而且开发人员因此也能够在不触及 HTML标记的情况下, 集中精力编辑 JavaScript代码。
- 可缓存:浏览器能够根据具体的设置缓存链接的所有外部 JavaScript文件。也就是说,如果有两个 页面都使用同一个文件,那么这个文件只需下载一次。因此,终结果就是能够加快页面加载的速度。
- 适应未来:通过外部文件来包含 JavaScript 无须使用前面提到 XHTML 或注释 hack。HTML 和 XHTML包含外部文件的语法是相同的。
文档模式
文档模式分为混杂模式(quirks mode)和标准模式(standards mode)。
-
对于标准模式,可以通过使用下面任何一种文档类型来开启:
微信图片_20190714005002.png -
而对于准标准模式,则可以通过使用过渡型(transitional)或框架集型(frameset)文档类型来触发, 如下所示:
微信图片_20190714005007.png
<\noscript>元素
<\noscript>元素用在不支持 JavaScript 的浏览器中显示替代的内容。
微信图片_20190714005214.png