在HTML中使用JavaScript(总结自JavaScript高级程序设计)
2017-07-27 21:21
363 查看
## 1.<script>元素
H4中为<script>定义了下列6个属性:
- async:可选。表示应该立即下载脚本,但不应妨碍页面中其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
- charset:可选。表示通过src属性指定的代码的字符集。由于大多数浏览器忽略它的值,因此这个属性很少有人用。
- defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。
- language:已废弃。原来用于表示编写代码使用的脚本语言(如JS、JS1.2、VBScript)。大多数浏览器会忽略这个属性,因此也没有必要再用了。
- src:可选。表示包含要执行代码的外部文件。
- type:可选。可以看成是language替代属性;表示编写代码使用的脚本语言的内容类型。
使用<script>元素的方式有两种:直接在页面中嵌入JS代码和包含外部JS文件。
在使用<script>元素嵌入JS代码时,只须为<script>指定type属性。如:
<script type="text/javascript>
function sayScript(){
alert("Hi!");
}
</script>
包含在<script>元素内部的JS代码将被从上至下依次解释。就拿前面这个例子来说,解释器会解释一个函数的定义,然后将该定义保存在自己的环境当中。在解释器对<scritp>元素内部的所有代码求值完毕以前,页面中的其余内容都不会别浏览器加载或显示。
在<script>嵌入JS代码时,不要在代码中的任何地方出现“</scritp>”字符串。因为按照解析嵌入式代码的规则,当浏览器遇到字符串"</script>"时,就会认为那是结束的</script>.但是可以通过转义字符“\”来解决这个问题。
如果通过<script>元素来包含外部JS文件,那么src属性就是必需的。这个属性的值是一个指向外部JS文件的连接,例如:
<script type="text/javaScript" src="example.js"></script>
src属性同样可以包含来自外部域的JS文件,例如:
<script type="text/javaScript" src="http://www.somewhere.com/afile.js"></script>
==需要注意的是,带有src属性的<script>元素不应该在其<script>和</script>标签之间再包含额外的JS代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。==
## 2.标签的位置
按照传统的做法,所有<script>元素都应该放在页面的<head>元素中。这种做法的目的就是把所有外部文件(包括CSS文件和JS文件)的引用都放在相同的地方。而这意味着必须等到全部JS代码都被下载、解析和执行完成以后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。
这种做法会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一篇空白。为避免这个问题,现代web应用程序一般都把全部JS引用放在<body>元素中页面内容的后面。
## 3.延迟脚本
H4中为<script>标签定义了defer属性。这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后在执行。因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。
<script type="text/javaScript" defer="defer" src="example.js"></script>
H5规范要求脚本按照它们出现的先后顺序执行,因此第一个延迟脚本会先于第二个延迟脚本执行,而这两个脚本会先于DOMContentLoaded事件执行。
==注意:defer属性只适用于外部脚本文件。有些浏览器会忽略这个属性,像平常一样处理脚本。为此,把延迟脚本放在页面底部仍然是最佳选择。==
## 4.异步脚本
H5为<script>元素定义了async属性。这个属性与defer属性类似,都用于改变处理脚本的行为。同样只适用于外部脚本文件,并告诉浏览器立即下载文件。但与defer不同的是,标记为async的脚本并不保证按照指定它们的先后顺序执行。因此,确保两者之间互不依赖非常重要。
指定async属性的目的是不然该页面等待两个脚本下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。
异步脚本一定会在页面的load时间前执行,但可能会在DOMContentLoaded事件触发之前或之后执行。
5.<noscript>元素
该元素用以在不支持JS的浏览器中显示替代的内容。这个元素可以包含能够出现在文档<body>中的任何HTML元素——<script>元素除外。包含在<noscript>元素中的内容只有在下列情况下才会显示出来:
- [ ] 浏览器不支持脚本
- [ ] 浏览器支持脚本,但脚本被禁用。
简单例子:
<html>
<head>
<title>Example HTML Page</title>
<script type="text/javaScript" defer="defer"src="example.js"></script>
</head>
<body>
<noscript>
<p>本页面需要浏览器支持(启用)JavaScript</p>
</noscript>
</body>
</html>
这个页面会在脚本无效的情况下向用户显示一条消息。而在启用了脚本的浏览器中,用户永远也不会看到它。
H4中为<script>定义了下列6个属性:
- async:可选。表示应该立即下载脚本,但不应妨碍页面中其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
- charset:可选。表示通过src属性指定的代码的字符集。由于大多数浏览器忽略它的值,因此这个属性很少有人用。
- defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。
- language:已废弃。原来用于表示编写代码使用的脚本语言(如JS、JS1.2、VBScript)。大多数浏览器会忽略这个属性,因此也没有必要再用了。
- src:可选。表示包含要执行代码的外部文件。
- type:可选。可以看成是language替代属性;表示编写代码使用的脚本语言的内容类型。
使用<script>元素的方式有两种:直接在页面中嵌入JS代码和包含外部JS文件。
在使用<script>元素嵌入JS代码时,只须为<script>指定type属性。如:
<script type="text/javascript>
function sayScript(){
alert("Hi!");
}
</script>
包含在<script>元素内部的JS代码将被从上至下依次解释。就拿前面这个例子来说,解释器会解释一个函数的定义,然后将该定义保存在自己的环境当中。在解释器对<scritp>元素内部的所有代码求值完毕以前,页面中的其余内容都不会别浏览器加载或显示。
在<script>嵌入JS代码时,不要在代码中的任何地方出现“</scritp>”字符串。因为按照解析嵌入式代码的规则,当浏览器遇到字符串"</script>"时,就会认为那是结束的</script>.但是可以通过转义字符“\”来解决这个问题。
如果通过<script>元素来包含外部JS文件,那么src属性就是必需的。这个属性的值是一个指向外部JS文件的连接,例如:
<script type="text/javaScript" src="example.js"></script>
src属性同样可以包含来自外部域的JS文件,例如:
<script type="text/javaScript" src="http://www.somewhere.com/afile.js"></script>
==需要注意的是,带有src属性的<script>元素不应该在其<script>和</script>标签之间再包含额外的JS代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。==
## 2.标签的位置
按照传统的做法,所有<script>元素都应该放在页面的<head>元素中。这种做法的目的就是把所有外部文件(包括CSS文件和JS文件)的引用都放在相同的地方。而这意味着必须等到全部JS代码都被下载、解析和执行完成以后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。
这种做法会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一篇空白。为避免这个问题,现代web应用程序一般都把全部JS引用放在<body>元素中页面内容的后面。
## 3.延迟脚本
H4中为<script>标签定义了defer属性。这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后在执行。因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。
<script type="text/javaScript" defer="defer" src="example.js"></script>
H5规范要求脚本按照它们出现的先后顺序执行,因此第一个延迟脚本会先于第二个延迟脚本执行,而这两个脚本会先于DOMContentLoaded事件执行。
==注意:defer属性只适用于外部脚本文件。有些浏览器会忽略这个属性,像平常一样处理脚本。为此,把延迟脚本放在页面底部仍然是最佳选择。==
## 4.异步脚本
H5为<script>元素定义了async属性。这个属性与defer属性类似,都用于改变处理脚本的行为。同样只适用于外部脚本文件,并告诉浏览器立即下载文件。但与defer不同的是,标记为async的脚本并不保证按照指定它们的先后顺序执行。因此,确保两者之间互不依赖非常重要。
指定async属性的目的是不然该页面等待两个脚本下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。
异步脚本一定会在页面的load时间前执行,但可能会在DOMContentLoaded事件触发之前或之后执行。
5.<noscript>元素
该元素用以在不支持JS的浏览器中显示替代的内容。这个元素可以包含能够出现在文档<body>中的任何HTML元素——<script>元素除外。包含在<noscript>元素中的内容只有在下列情况下才会显示出来:
- [ ] 浏览器不支持脚本
- [ ] 浏览器支持脚本,但脚本被禁用。
简单例子:
<html>
<head>
<title>Example HTML Page</title>
<script type="text/javaScript" defer="defer"src="example.js"></script>
</head>
<body>
<noscript>
<p>本页面需要浏览器支持(启用)JavaScript</p>
</noscript>
</body>
</html>
这个页面会在脚本无效的情况下向用户显示一条消息。而在启用了脚本的浏览器中,用户永远也不会看到它。
相关文章推荐
- JavaScript高级程序设计第二章在HTML中使用JavaScript
- js高级程序设计(第三版)这一遍的总结——第二章在html中使用js
- JavaScript高级程序设计第三版(第二章:在HTML中使用JavaScript)
- javaScript 高级程序设计 第2章 在HTML中使用JavaScript
- JavaScript高级程序设计(第2章 在HTML中使用JavaScript)
- JS高级程序设计第三版——在HTML中使用JavaScript
- avaScript高级程序设计之在 HTML 中使用 JavaScript 第2.2讲笔记
- javascript 高级程序设计(二)-在html中使用javascript
- 《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
- JavaScript高级程序设计(二):在HTML中使用JavaScript
- Javascript高级程序设计——在HTML中使用Javascript
- 2. javacript高级程序设计-在HTML中使用JavaScript
- avaScript高级程序设计之在 HTML 中使用 JavaScript 第2.1讲笔记
- 【JavaScript高级程序设计】--第2章 在HTML中使用JavaScript
- JavaScript高级程序设计笔记(2)_在HTML中使用js
- JavaScript高级程序设计学习笔记一在HTML中使用JS
- JavaScript高级程序设计 第二章 --- 在HTML中使用JavaScript
- JavaScript高级程序设计 第二章 在HTML中使用javascript
- JavaScript高级程序设计——第2章 在HTML中使用JavaScript元素
- 读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript