JavaScript vs. DOM vs. BOM 关系说明

要清楚地理解JavaScript,DOM和BOM之间的关系,我们需要了解JavaScript是怎样实现的。

实际上,完整的JavaScript实现由3个不同的部分组成:

  1. 核心(基于ECMAScript规范)
  2. 文档对象模型(DOM)
  3. 浏览器对象模型(BOM)

ECMAScript

ECMA-262这样描述ECMAScript(European Computer Manufacturing Association,欧洲计算机制造协会):

“ECMAScript can provide core scripting capabilities for a variety of host environments, and therefore the core scripting language is specified…apart from any particular host environment.”

“ECMAScript可以为各种各样的宿主环境提供核心脚本功能,因而核心脚本语言的描述独立于任何特定的宿主环境。”

网页浏览器可以视为ECMAScript的宿主环境,但并不是其唯一的宿主环境。这里(http://vkanakaraj.wordpress.com/2009/10/28/javascript-hosts/)列举了一些其他的宿主环境。

除了DOM和BOM,每个浏览器都有其自己的ECMAScript接口实现。

文档对象模型 (DOM)

文档对象模型(DOM)像XML一样,也是HTML的应用程序接口(API)。

DOM将整个页面映射到一个由树形节点层次结构组成的文档之上,节点可以通过DOMAPI被移除、添加或者替换。

DOM level 1 包含2个模块: DOM核心, 提供了一种方式,对基于XML的文档结构的映射,使得文档任何部分的访问和操作都变得很方便; DOM HTML,通过添加HTML专用的对象和方法对DOM核心进行扩展。

DOM Level 2 引入了几种DOM的新方法来处理新类型的接口:

  • DOM Views — 描述了跟踪文档的各种视图的接口(就是说,CSS样式之前和之后的文档)
  • DOM Events — 描述了事件接口
  • DOM Style — 描述了处理基于CSS的样式的接口
  • DOM Traversal and Range — 描述了遍历和操作一棵文档树的接口

DOM Level 3 进一步对DOM进行了扩展,引入了使用统一方式加载和保存文档的方法(包含在一个叫做DOM Load and Save的新模块中)在Level 3,DOM核心被扩展以支持XML 1.0的所有部分,包括XML Infoset, XPath和XML Base。

请注意DOM并非JavaScript专用的,并且事实上已经被许多其他语言实现了。但对于Web浏览器,DOM使用ECMAScript实现,并且现在是JavaScript语言的一个最大的组成部分。

其他DOM:

  • Scalable Vector Graphics (SVG)
  • Mathematical Markup Language (MathML)
  • Synchronized Multimedia Integration Language (SMIL)

浏览器对象模型(BOM)

浏览器支持浏览器对象模型(BOM),允许对浏览器窗体的访问和操作。使用BOM,开发者可以移动窗体,改变状态栏中的文字,以及实现其他与页面内容不直接相关的操作。

由于还没有BOM的标准,因此各个浏览器都有其自行实现的BOM。

原文链接:http://vkanakaraj.wordpress.com/2009/12/18/javascript-vs-dom-vs-bom-relationship-explained/

本文链接:http://bookshadow.com/weblog/2014/11/05/javascript-vs-dom-vs-bom-relationship-explained/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码

Pingbacks已关闭。

暂无评论

张贴您的评论