<h2>标签的位置</h2>
<p>需要注意的是,带有src属性的<script>不应该在其<script>和</script>标签之间再额外包含的JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部的脚本代码,嵌入代码会被忽略</p>
<p>另外通过<script>元素的src属性还可以包含来自外部域的JavaScript文件。
如下:</p>
<code><script type = "text/javascript" src="http//www.somewhere.com/.js" ></script></code>
<p>按照惯例,所有的<script>元素都应该放在页面的<head>元素中。</p>
<p>这种做法的目的就是把所有的外部文件(包括CSS文件和JS文件)的引用都放在相同的地方。可是,在文档的<head>元素中包含所有的JS文件,意味着必须等到全部JS代码都被下载,解析和执行完成以后,才能开始呈现页面的内容。为了避免这个问题,现代Web应用程序一般都把全部JavaScript引用都放在<body>元素中页面的内容的后面。</p>
<h2>延迟脚本</h2>
<p>HTML4.01为<script>定义了defer属性。这个属性的用途是表明脚本在执行时候不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后执行。(立即下载,但延迟执行)。</p>
<p>defer属性只使用于外部脚本文件。这一点在HTML5中已经明确规定,因此支持HTML5的实现会给忽略给嵌入脚本设置的defer属性。</p>
<h2>异步脚本</h2>
<p>HTML5为<script>定义了async属性。使用于外部脚本文件,并告诉浏览器立即下载,但与defer不同的是标记为async的脚本并不保证按照指定的顺序执行。</p>
<p>异步脚本(async)一定会在页面load事件前执行,但可能会在DOMContentLoaded事件触发前或之后执行。</p>
<h2>在XHTML中的用法</h2>
<p>可扩展超文本标记语言,即XHTML,是将HTML作为XML的应用而重新定义的一个标准。</p>
<h1>嵌入代码与外部文件</h1>
<p>在HTML中嵌入JavaScript代码虽然没有问题,但一般认为最好的做法还是使用外部文件来包含JavaScript代码。优点如下:</p>
<ul> <li>可维护性</li><li>可缓存</li><li>适应未来</li></ul>
<h2>文档模式</h2>
<p>IE5.5引入了文档模式的概念,而这个概念是通过使用文档模型(doctype)切换实现的。最初的两种标准模式是:混杂模式(quirks mode)和标准模式(standards mode)。混杂莫斯会让IE的行为与IE5相同,而标准模式则让IE的行为更接近标准行为。虽然这两种模式主要硬性CSS内容呈现,但在某些情况下也会影响到JavaScript的解释执行。</p>
<p>在IE引入文档模型后,其他浏览器也纷纷效仿。在此之后,IE又提出一种所谓的准标准模式(almost standards mode)。这种模式下的浏览器特性有很多是符合标准的,但也不尽然。不标准的地方主要体现在处理图片间隙的时候。</p>
<h2><noscript>元素</h2>
<p>当浏览器不支持JavaScript时候让页面平稳退化,用<noscript>让不支持JavaScript的浏览器中显示替代内容。这个元素可以包含能骨偶出现在文档<body>中任何HTML元素,<script>除外。显示情况</p>
<ul>
<li>浏览器不支持脚本</li>
<li>脚本被禁用</li>
</ul>