你的位置:首页 > Java教程

[Java教程]JavaScript高级程序设计(第3版)第二章读书笔记


第二章在HTML中使用JavaScript

1.        HTML4.01为<script>定义了6个属性:async(异步加载,仅对外部文件有效)、charset、defer(脚本可以延迟到文档完全被解析和显示之后再执行)、language(已废弃)、src、type(可看成language的替代属性,表示编写代码使用的脚本语言的内容类型,即MIME类型,一般写成type=”text/javascript”)。

2.        使用<script>元素的两种方式:直接在页面中嵌入JavaScript代码和包含外部JavaScript文件。

3.        <script>与<img>元素相似,它的src属性可以指向当前HTML页面所在域之外的某个域中的完整URL。

4.        无论如何包含代码,只要不存在defer和async属性,浏览器都会按照<script>元素在页面中出现的先后顺序的对它们一次进行解析。

5.        为了避免<head>元素中有过多JavaScript代码,导致浏览器在呈现页面时出现明显的而延迟,浏览器窗口出现空白的情况,现代Web应用程序一般都把全部JavaScript引用放在<body>元素中页面内容的后面。

6.        标有defer属性的<script>标签,其包含的脚本告诉浏览器立即下载,将延迟到浏览器遇到</html>标签后再执行。现实中,延迟脚本并不一定会按照顺序执行,也不一定会在DOMContentLoaded事件触发前执行,因此最后只包含一个延迟脚本。

7.        标有async属性的<script>标签,告诉浏览器立即下载文件,但并不保证按照指定它们的先后顺序执行。异步脚本一定会在页面的load事件前执行,但不确定在DOMContentLoaded事件触发之前或是之后执行。

8.        外部文件比嵌入JavaScript代码的优点是:可维护性、可缓存(浏览器能够根据具体的设置缓存链接的所有外部JavaScript文件,如果两个页面使用同一个文件,那么这个文件只需要下载一次)、适应未来。

9.        IE5.5引入了文档模式的概念,此概念是通过使用文档类型(doctype)切换实现的。最初的文档模式是:混杂模式和标准模式。这两种模式主要影响CSS内容的呈现,某些情况下也会影响到avaScript的解释执行。之后,IE又提出了准标准模式。如果在文档开始出没有发现文档类型声明,则所有浏览器都会默认开启混杂模式,但混杂模式不值得推荐,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性可言。

10.    CSS Hack技术是通过不同浏览器自身所带有的特殊标识符以及CSS中优先级的机制来实现不同浏览器里CSS样式兼容性的问题。CSS Hack三种实现方式:CSS类内部hack、CSS选择器hack、HTML头部的hack。