JavaScript学习 第二章

如果要通过

在这个例子中,外部文件 example.js 将被加载到当前页面中。外部文件只须包含通常要放在开始 的之间的那些 JavaScript代码即可。与解析嵌入式 JavaScript代码一样, 在解析外部 JavaScript文件(包括下载该文件)时,页面的处理也会暂时停止。

标签的位置

现代 Web 应用程序一般都把全部 JavaScript引 用放在元素中页面内容的后面,如下例所示:


   

    Example HTML Page


    
    
    


这样,在解析包含的 JavaScript 代码之前,页面的内容将完全呈现在浏览器中。而用户也会因为浏 览器窗口显示空白页面的时间缩短而感到打开页面的速度加快了。

延迟脚本

HTML 4.01为

在 XHTML文档中,要把 defer 属性设置为 defer="defer"。

异步脚本

HTML5为

在以上代码中,第二个脚本文件可能会在第一个脚本文件之前执行。因此,确保两者之间互不依赖 非常重要。指定 async 属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。 为此,建议异步脚本不要在加载期间修改 DOM。 异步脚本一定会在页面的 load 事件前执行,但可能会在 DOMContentLoaded 事件触发之前或之 后执行。支持异步脚本的浏览器有 Firefox 3.6、Safari 5和 Chrome。

在 XHTML文档中,要把 async 属性设置为 async="async"。

在XHTML中的用法

可扩展超文本标记语言,即 XHTML(Extensible HyperText Markup Language),是将 HTML 作为 XML的应用而重新定义的一个标准。编写 XHTML代码的规则要比编写 HTML严格得多,而且直接影 响能否在嵌入 JavaScript代码时使用

虽然这样可以让代码在 XHTML中正常运行,但却导致代码不好理解了。为此,我们可以考虑采用 另一个方法。 保证让相同代码在 XHTML中正常运行的第二个方法,就是用一个 CData片段来包含 JavaScript代 码。在 XHTML(XML)中,CData片段是文档中的一个特殊区域,这个区域中可以包含不需要解析的 任意格式的文本内容。因此,在 CData片段中就可以使用任意字符——小于号当然也没有问题,而且不 会导致语法错误。引入 CData片段后的 JavaScript代码块如下所示:

 

在兼容 XHTML的浏览器中,这个方法可以解决问题。但实际上,还有不少浏览器不兼容 XHTML, 因而不支持 CData片段。怎么办呢?再使用 JavaScript注释将 CData标记注释掉就可以了:

 

这种格式在所有现代浏览器中都可以正常使用。虽然有几分 hack 的味道,但它能通过 XHTML 验 证,而且对 XHTML之前的浏览器也会平稳退化。

嵌入代码与外部文件

在 HTML中嵌入 JavaScript代码虽然没有问题,但一般认为好的做法还是尽可能使用外部文件来 包含 JavaScript代码。不过,并不存在必须使用外部文件的硬性规定,但支持使用外部文件的人多会强 调如下优点。

  • 可维护性:遍及不同 HTML页面的 JavaScript会造成维护问题。但把所有 JavaScript文件都放在一个文件夹中,维护起来就轻松多了。而且开发人员因此也能够在不触及 HTML标记的情况下, 集中精力编辑 JavaScript代码。
  • 可缓存:浏览器能够根据具体的设置缓存链接的所有外部 JavaScript文件。也就是说,如果有两个 页面都使用同一个文件,那么这个文件只需下载一次。因此,终结果就是能够加快页面加载的 速度。
  • 适应未来:通过外部文件来包含 JavaScript 无须使用前面提到 XHTML 或注释 hack。HTML 和 XHTML包含外部文件的语法是相同的。

文档模式

IE5.5 引入了文档模式的概念,而这个概念是通过使用文档类型(doctype)切换实现的。初的两种文档模式是:混杂模式(quirks mode)和标准模式(standards mode)。

对于标准模式,可以通过使用下面任何一种文档类型来开启:

  

  

  

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

  

  

  

  

早期浏览器都面临一个特殊的问题,即当浏览器不支持 JavaScript 时如何让页面平稳地退化。对这个问题的终解决方案就是创造一个

你可能感兴趣的:(JavaScript学习 第二章)