首先本篇文章摘自:http://itbilu.com/javascript/js/Vyxodm_1g.htmljavascript
很是感谢本篇文章的做者,他理清了我映像中混乱的DOM Level级别。让我知道了DOM0级并不存在,而咱们如今经常使用CoreDOM、HTML-DOM都属于DOM1级,而事件的接口,则是从DOM2级开始引入。html
====================== 具体内容 =====================前端
JavaScript历经了从被人误解到如今的被万众瞩目的转变。随着一些JavaScript编程规范的推出(如:AMD、CMD),其应用范围也从前端一些小功能逐渐扩展到后端和一些大项目中。那么,JavaScript从混乱无序到严谨规范经历的哪些过程,在这些过程当中又JavaScript增长了哪些功能特性?java
JavaScript
最初由Netscape
的Brendan Eich
设计, Netscape
在最初将其脚本语言命名为LiveScript
,后来Netscape
在与Sun
合做以后将其更名为JavaScript
。由此看来,JavaScript
只是出于营销考虑,看起来像Java
实则与Java
没有一点关系。git
在JavaScript
出现以前,Web浏览器仅是一种可以显示超文本文档的软件;在JavaScript
出现以后,网页的交互性获得明显改善,其内容也再也不局限于简单的文本。JavaScript
第一个版本,即:JavaScript 1.0
,在1995年Netscape Navigator 2
浏览器中推出。程序员
在JavaScript 1.0
发布时,Netscape Navigator
浏览器还占主宰地位。Microsoft
在IE 3.0
时发布了VBScript
命名为JScript
。面对微软的竞争,Netscape
在与Sun
联合ECMA
(欧洲计算机制造协会)对JavaScript
语言进行了标准化,即:ECMA-262
(ECMAScript),也就是咱们今天的使用JavaScript
语言标准,目前最新标准为ECMAScript 6。github
JavaScript
最初设计是做为给非程序人员的脚本语言,JavaScript
作为一种解释型脚本语言,一般只能依赖Web浏览器去完成一些操做而不能像动态语言那样独立运行。也正是因为JavaScript
的简单性,使其比较容易的学习和使用。编程
JavaScript
向用户提供了一些操控Web浏览器和Web文档的API,即:BOM(浏览器对象模型)和DOM(文档对象模型)。你能够经过JavaScript
调整浏览的宽、高、位置等,一样你可经过JavaScript
调整Web页面内容的显示、隐藏、表单提交等。后端
DOM
是什么DOM
,文档对象模型(Document Object Model)。DOM
是 W3C
(万维网联盟)的标准,DOM
定义了访问HTML
和XML
文档的标准。在W3C
的标准中,DOM
是独于平台和语言的接口,它容许程序和脚本动态地访问和更新文档的内容、结构和样式。api
W3C DOM
由如下三部分组成:
核心DOM
- 针对任何结构化文档的标准模型XML DOM
- 针对 XML 文档的标准模型HTML DOM
- 针对 HTML 文档的标准模型
DOM
的发展-DOM0、DOM一、DOM二、DOM3的区别DOM0
JavaScript
在早期版本中提供了查询和操做Web文档的内容API(如:图像和表单),在JavaScript
中定义了定义了'images'
、'forms'
等,所以咱们能够像下这样访问第一张图片或名为“user”的表单:
document.images[0] document.forms['user']
这其实是未造成标准的试验性质的初级阶段的DOM,如今习惯上被称为DOM0
,即:第0级DOM
。因为DOM0
在W3C
进行标准备化以前出现,还处于未造成标准的初期阶段,这时Netscape
和Microsoft
各自推出本身的第四代浏览器,自此DOM遍开始出各类问题。
DOM0与DHTML
Netscape Navigator 4
和IE4
分别发布于1997年的6月和10月,这两种浏览器都大幅扩展了DOM
,使JavaScript
的功能大大增长,而此时也开始出现一个新名词:DHTML
。
DHTML
是Dynamic HTML
(动态HTML)的简称。DHTML
并非一项新技术,而是将HTML、CSS、JavaScript技术组合的一种描述。即:
利用DHTML,看起来能够很容易的控制页面元素,并实现一此本来很复杂的效果(如:经过改变元素位置实现动画)。但事实并不是如此,由于没有规范和标准,两种浏览器对相同功能的实现确彻底不同。为了保持程序的兼容性,程序员必须写一些探查代码以检测JavaScript是运行于哪一种浏览器之下,并提供与之对应的脚本。JavaScript
陷入了史无前例的混乱,DHTML
也所以在人们心中留下了不好的印象。
DOM1的出现
在浏览器厂商进行浏览器大站的同时,W3C
结合你们的优势推出了一个标准化的DOM
,并于1998年10月完成了第一级 DOM
,即:DOM1
。W3C
将DOM
定义为一个与平台和编程语言无关的接口,经过这个接口程序和脚本能够动态的访问和修改文档的内容、结构和样式。
DOM1
级主要定义了HTML和XML文档的底层结构。在DOM1
中,DOM由两个模块组成:DOM Core
(DOM核心)和DOM HTML
。其中,DOM Core
规定了基于XML的文档结构标准,经过这个标准简化了对文档中任意部分的访问和操做。DOM HTML
则在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法,如:JavaScript中的Document
对象
DOM2与DOM3
在DOM1
的基础上DOM2
和DOM3
引入了更多的交互能力,也支持了更高级的XML特性。DOM2
和DOM3
将DOM分为更多具备联系的模块。DOM2级在原来DOM的基础上又扩充了鼠标、用户界面事件、范围、遍历等细分模块,并且经过对象接口增长了对CSS的支持。DOM1
级中的DOM核心模块也通过扩展开始支持XML命名空间。在DOM2
中引入了下列模块,在模块包含了众多新类型和新接口:
DOM视图
(DOM Views):定义了跟踪不一样文档视图的接口DOM事件
(DOM Events):定义了事件和事件处理的接口DOM样式
(DOM Style):定义了基于CSS为元素应用样式的接口DOM遍历和范围
(DOM Traversal and Range):定义了遍历和操做文档树的接口DOM3
进一步扩展了DOM,在DOM3
中引入了如下模块:
DOM加载和保存模块
(DOM Load and Save):引入了以统一方式加载和保存文档的方法DOM验证模块
(DOM Validation):定义了验证文档的方法DOM核心的扩展
(DOM Style):支持XML 1.0规范,涉及XML Infoset、XPath和XML Base