JavaScript高级程序设计(读书笔记)(二)

来源:互联网 发布:淘宝数据包如何使用 编辑:程序博客网 时间:2024/05/16 08:46

本笔记汇总了作者认为“JavaScript高级程序设计”这本书的前七章知识重点,仅供参考。

第二章 在HTML中使用JavaScript

把JavaScript插入到HTML页面中要使用<script>元素。使用这个元素可以把JavaScript嵌入到HTML页面中,让脚本与标记混合在一起;也可以包含外部的JavaScript文件。而我们需要注意的地方有:

  • 在包含外部JavaScript文件时,必须将src属性设置为指向相应文件的URL。而这个文件既可以是与包含它的页面位于同一个服务器上的文件,也可以是其他任何域中的文件。
  • 所有<script>元素都会按照他们在页面中出现的先后顺序依次被解析。在不使用defer和asycn属性的情况下,只有在解析完前面<script>元素中的代码之后,才会开始解析后面的<script>元素中的代码。
  • 由于浏览器会先解析完不适用defer属性的<script>元素中的代码,然后再解析后面的内容,所以一般应该把<script>元素放在页面最后,即主要内容后面,</body>标签前面。
  • 使用defer属性可以让脚本在文档完全呈现之后再执行。延迟脚本总是按照制定它们的顺序执行。
  • 使用async属性可以表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。不能保证异步脚本按照它们在页面中出现的顺序执行。

另外,使用<noscript>元素可以指定在不支持脚本的浏览器中显示的替代内容。但在启用了脚本的情况下,浏览器不会显示<noscrpt>元素中的任何内容。


文档模式(重点)

IE5.5引入了文档模式概念,而这个概念是通过使用文档类型(doctype)切换实现的。最初的两种文档模式是:混杂模式(quirks mode)和标准模式(standards mode)
在IE引入文档模式的概念后,其他浏览器纷纷效仿。在此之后,IE又提出一种所谓的准标准模式(almost standards mode)。这种模式下的浏览器特性有很多都是符合标准的,但也不尽然。不标准的地方主要体现在处理图片间隙的时候(在表格中使用图片时问题最明显)。
如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。但采用混杂模式不是什么值得推荐的做法,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性可言。
对于标准模式,可以使用下面任何一种文档类型来开启:

<!-- HTML 4.01 严格型 --><! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><!-- XHTML 1.0 严格型 --><!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><!-- HTML 5 --><!DOCTYPE html>

以上三种标准模式对应的emmet快速补全方式为:

html:4s + tab键html:xs + tab键html:5 or ! + tab键

而对于准标准模式,则可以通过使用过渡型(transitional)或框架集型(frameset)文档类型来触发,
如下所示:

<!-- HTML 4.01 过渡型 --><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><!-- HTML 4.01 框架集型 --><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Frameset//EN""http://www.w3.org/TR/html4/frameset.dtd"><!-- XHTML 1.0 过渡型 --><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/xhtml1-transitional.dtd"><!-- XHTML 1.0 框架集型 --><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 1.0 Frameset//EN""http://www.w3.org/TR/xhtml1/xhtml1-frameset.dtd">

暂时没发现框架集型的补全缩写,两个过渡型的emmet缩写如下:

html:4t + tab键html:xt + tab键

1 0
原创粉丝点击