来源于:https://github.com/hucheng91/myBlog/blob/master/web/dom/dom.md
DOM定义
DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。有一点很重要,DOM的设计是以对象管理组织(OMG)的规约为基础的,因此可以用于任何编程语言。最初人们把它认为是一种让JavaScript在浏览器间可移植的方法,不过DOM的应用已经远远超出这个范围。Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强。 DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。可以把DOM认为是页面上数据和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现。 DOM是W3C(万维网联盟)的标准。DOM定义了访问HTML和XML文档的准W3C文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。 W3C DOM 标准被分为3个不同的部分:
- 核心DOM-针对任何结构化文档的标准模型
- XML DOM-针对XML文档的标准模型
- HTML DOM-针对HTML文档的标准模型
DOM发展背景
DOM的历史可以追溯至1990年代后期微软与Netscape的“浏览器大战”,双方为在JavaScript与JScript一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,计有VBScript、ActiveX、以及微软自家的DHTML格式等,使不少网页使用非微软平台及浏览器无法正常显示。这个时候万维网联盟出来了,说我来制定一个统一的标准,你们浏览器按照这个标准来,这个一个页面在不同的浏览器就都能正常显示了,比方说W3C定义了 这个标识符是存放图片的,chrome,ie,火狐..等等浏览器内核就将定义成显示图片,要是没有W3C制定标准,每个浏览器对图片定义不同的标签,那针对每个浏览器要写不同的代码,这个肯定是行不通的;
DOM基本定义
DOM最开始只定义了一级 主要包含 DOM Core,DOM HTML;这一级就主要搞定了各个浏览器显示统一问题,接着发展了二级,三级;之所以出现我们写的代码在这个浏览器可用,再那个浏览器不用,归根结底是浏览器对dom的支持不一样,解释不一样,虽然你定了统一标准,可人家不一定非要按你这个来
DOM和浏览器之间关系,为什么要用DOM
浏览器将DOM翻译成html
DOM和HTML之间关系
浏览器拿到DOM这颗树,将其渲染成html,加上各种漂亮的css,由于各种浏览器渲染过程不一样,所以写的有些样式这个浏览器是可以用的,有些浏览器是不同的
DOM和javascript之间关系
javascript是操作dom,处理完dom,浏览器接着渲染,这样就有了页面的变化,
DOM,浏览器,HTML,javasript,css之间的关系可以理解成;一个画家(程序员)用画笔(javascript)画了个画(DOM),接着打印机(浏览器)打印,在打印过程中加上彩墨(css),最终一张漂亮好看的一张纸(html)就展示在大家面前
https://www.w3.org/TR/2015/REC-dom-20151119/