我们常见的Web只是ECMAScript实现可能的宿主环境之一.宿主环境不仅提供基本的ECMAScript实现,同时提供该语言的扩展(如DOM/Node).
DOM文档对象模型是针对XML但经过扩展用于HTML的应用程序编程接口;DOM把整个页面映射为一个多层节点结构.
DOM1级由两个模块组成:DOM核心(DOM Core) 和 DOM HTML.
DOM核心规定的是如何映射基于XML文档结构以便简化对文档中任意部分的访问和操作.
DOM HTML模块在DOM核心基础上扩展和添加针对HTML的对象和方法.
DOM2级引入新模块: 1.DOM视图 2.DOM样式 3.DOM事件 4.DOM遍历和范围.
DOM3级引入以统一方式加载和保存文档的方法.
<script>常用属性:
1.async : 可选,表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本.只对外部脚本文件有效.
2.defer : 可选,表示脚本可以延迟到文档完全被解析和显示之后再执行.只对外部脚本有效.
3.src : 可选,表示包含要执行代码的外部文件.
4.type : 可选,实际上服务器在传送JS文件时使用的MIME类型通常是application/x-Javascript,但在type中设置会导致脚本被忽略,常用的text/javascript已不荐使用.
使用<script>两种方式:内嵌与外联JS文件.
<script type="text/javascript">
function sayHi(){
alert("Hi!");
}
</script>
<script type="text/javascript" src="example.js"></script>
在解释器对<script>元素内部(外部)的代码解析(包括外部下载)完毕以前,页面中的其余内容都不会被浏览器加载或显示.
包含在<script>元素内部的JS代码将从上至下执行.
如果是外联JS文件,那么src属性是必须的,该属性值指向外部JS文件的链接.
带有src属性的<script>元素不应该在其<script>标签内再包含额外JS代码,如果包含则嵌入代码会被忽略.
无论是外联还是内嵌,只要不存在defer和async属性,浏览器都会按照<script>元素在页面中出现的先后顺序对它们依次进行解析.
通过<script>元素的src属性还可以包含来自外部域的JS文件,即它的src属性可以指向当前HTML页面所在域之外的某个域中的资源(跨域).
<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>
延迟脚本
有defer属性的JS文件会立即下载,到当整个页面都解析完毕后才执行.
HTML5规范要求脚本按照出现的先后顺序执行,而脚本先于DOMContentLoaded事件执行.
把延迟脚本放在页面底部是最佳选择.
异步脚本
指定async属性的目的是不让页面等待脚本下载和执行,即不保证按照指定它们的顺序执行,为此,建议异步脚本不要在加载期间修改DOM.
DOM文档对象模型是针对XML但经过扩展用于HTML的应用程序编程接口;DOM把整个页面映射为一个多层节点结构.
DOM1级由两个模块组成:DOM核心(DOM Core) 和 DOM HTML.
DOM核心规定的是如何映射基于XML文档结构以便简化对文档中任意部分的访问和操作.
DOM HTML模块在DOM核心基础上扩展和添加针对HTML的对象和方法.
DOM2级引入新模块: 1.DOM视图 2.DOM样式 3.DOM事件 4.DOM遍历和范围.
DOM3级引入以统一方式加载和保存文档的方法.
<script>常用属性:
1.async : 可选,表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本.只对外部脚本文件有效.
2.defer : 可选,表示脚本可以延迟到文档完全被解析和显示之后再执行.只对外部脚本有效.
3.src : 可选,表示包含要执行代码的外部文件.
4.type : 可选,实际上服务器在传送JS文件时使用的MIME类型通常是application/x-Javascript,但在type中设置会导致脚本被忽略,常用的text/javascript已不荐使用.
使用<script>两种方式:内嵌与外联JS文件.
<script type="text/javascript">
function sayHi(){
alert("Hi!");
}
</script>
<script type="text/javascript" src="example.js"></script>
在解释器对<script>元素内部(外部)的代码解析(包括外部下载)完毕以前,页面中的其余内容都不会被浏览器加载或显示.
包含在<script>元素内部的JS代码将从上至下执行.
如果是外联JS文件,那么src属性是必须的,该属性值指向外部JS文件的链接.
带有src属性的<script>元素不应该在其<script>标签内再包含额外JS代码,如果包含则嵌入代码会被忽略.
无论是外联还是内嵌,只要不存在defer和async属性,浏览器都会按照<script>元素在页面中出现的先后顺序对它们依次进行解析.
通过<script>元素的src属性还可以包含来自外部域的JS文件,即它的src属性可以指向当前HTML页面所在域之外的某个域中的资源(跨域).
<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>
延迟脚本
有defer属性的JS文件会立即下载,到当整个页面都解析完毕后才执行.
HTML5规范要求脚本按照出现的先后顺序执行,而脚本先于DOMContentLoaded事件执行.
把延迟脚本放在页面底部是最佳选择.
异步脚本
指定async属性的目的是不让页面等待脚本下载和执行,即不保证按照指定它们的顺序执行,为此,建议异步脚本不要在加载期间修改DOM.