程序员总说的DOM到底是什么?
大家好,有些词儿,程序员之间虽然天天说,彼此之间心照不宣,但是在面对一些非技术的产品同学的时候,对方却不一定能一下子就get到点。这个系列的文章就是为了解决这种尴尬的,理想的效果是,只要一提起这些词儿,你脑海中就会出现一幅图或者一段精妙的解释,那我们就成功了。今天Java培训班讲解的词儿是DOM,是程序员里面最基础、最常用的一个东西。它的全称是文档对象模型(DocumentObjectModel),光看名字太抽象,简单解释一下。我们知道,一个网页,其实就是一个html文件,经过浏览器的解析,最终呈现在用户面前。html语言我们也讲过,是由很多标签组成的,像这样:里面的head、body就是标签。这些标签不是随意摆放的,他们有自己的规则。首先它们是嵌套的,一层套一层,比如html套body,body又套p标签。其次,每一层,可以同时存在很多标签,比如head和body就是一层的,他们被外面的html套着。这样的结构很像我们电脑里的文件夹,「我的电脑」是最外面的一层,里面套着CDEF盘,每个盘里又有很多文件夹,文件夹里又有文件夹,最后才是很多具体的文件。为什么要按照这种结构来组织呢?其实就是方便解析和查询。解析的时候,从外到里,循序渐进,好比按照图纸盖房子,先盖围墙,再盖走廊,最后才是卧室。查询的时候,会有一条明确的路线,比如D盘-->岛国文化交流-->影视作品-->苍老师.avi,这样一层一层的缩小范围,查找效率会非常高。所以,浏览器在解析html文档的时候,会把每个标签抽象成代码里的对象,然后按照这种层次分明的结构组织起来,这就是文档对象模型,DOM了。画个图表示一下就是这样的:这就是数据结构里典型的「树」了。所以大家经常说DOM树,其实是一个意思。浏览器在解析html的时候,会在它的内部构建这样一棵DOM树,然后按照这棵树上的层次顺序,依次来解析每个标签。标签解析完了,用户就看到了网页的内容。但是,事情到这里还远远没有结束,因为还有javascript。浏览器解析完了html,然后就要开始解析html里的javascript代码了。我们知道,程序员可以通过javascript代码来实现一些动态的网页效果,比如去服务器拉取一段数据来展示,再比如说做一个酷炫的动画效果,这些,都还要用到DOM。举个简单的例子,现在javascript想要在网页里显示一行字“thisisfromjavascript”。要做的第一步,就是找到那个可以显示文字的标签。这是非常容易的,因为浏览器已经把DOM都交给javascript了。DOM里的对象,正好就是javascript语言里的对象。于是,通过下面的方法,javascript可以修改DOM树上的标签对象。随着前端知识的深入,你会发现javascript操纵DOM是非常普遍事情。比如很多网页,一开始加载出来只是个架子,只有一个loading在转圈,只有等javascript从服务器上请求到真正的数据之后,操纵DOM来显示数据,才能看到内容,这就是典型的异步加载。再比如html5的游戏,里面的人物要随着手势或鼠标来运动,多半也是javascript操纵DOM改变元素的位置来实现的。可以说,有了DOM,才使得javascript在前端世界里几乎无所不能。但是,有一点要注意,就是操纵DOM本身是一件效率非常低的事情。因为一个网页往往是很复杂的,浏览器构造出来的DOM树往往也是很庞大的,有的甚至有几千个节点。在这样庞大的一棵树上,进行频繁的改动,对浏览器尤其是移动浏览器来说是一个不小的工作量,稍一不注意就卡了。有人就发明了一种便捷的方法,叫虚拟DOM。简单来说就是用javascript又模拟了一棵简单的DOM树,然后所有的DOM操作都在这上面演练,这个效率是很高的。等时机成熟的时候,再把虚拟DOM树和真正的浏览器的DOM树做对比,算出差异,一次性的去改变真正的DOM树,这个效率也很高。经过这两个步骤,从整体上大大提高了javascript操纵DOM树的效率。
程序员总说的DOM到底是什么?
这就是数据结构里典型的「树」了。所以大家经常说DOM树,其实是一个意思。浏览器在解析html的时候,会在它的内部构建这样一棵DOM树,然后按照这棵树上的层次顺序,依次来解析每个标签。DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。可以把DOM认为是页面上数据和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现。DOM是DocumentObjectModel文档对象模型的缩写。根据W3CDOM规范(http://),DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。dom:文档对象模型(DocumentObjectModel,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。
DOM哪个国家的缩写
多米尼加共和国。多米尼加共和国(英语:The Dominican Republic 西班牙语:República Dominicana),简称多米尼加,国名意为“星期天、休息日”。据说源自哥伦布于15世纪末的一个星期日到此,位于加勒比海伊斯帕尼奥拉岛东部,西接海地,南临加勒比海,北濒大西洋,东隔莫纳海峡同波多黎各相望,总面积48734平方公里。首都圣多明各,多米尼加境内科迪勒拉山脉分中央、北部和东部三条横贯全国,中部的杜阿尔特峰海拔3175米,为西印度群岛的最高峰,中北部有锡瓦奥谷地,西部有大片干旱沙漠,西南部的恩里基略湖为第一大湖,是拉美陆地最低点,湖面在海平面以下40多米。多米尼加国旗国旗呈长方形,长与宽之比为3∶2,白色宽条十字将旗面分成四个相等的横长方形,左上方和右下方为蓝色,右上方和左下方为红色,白色十字交叉处绘有国徽图案。红色象征国家创建者为争取自由、独立而进行的火与血的艰苦斗争,还象征奋斗者的鲜血,蓝色象征自由,白色十字代表宗教信仰,也象征人民的奋斗和牺牲。中心图案为盾徽,盾面由国旗颜色和图案构成,中间有一本圣经,其上方为黄色十字,圣经和十字代表该国人民的宗教信仰,大多数人信奉天主教。圣经两旁悬挂着国旗,表明人民捍卫国家主权的信心。盾徽两侧饰有月桂和棕榈枝叶,上端的蓝色绶带上用西班牙文写着“上帝、祖国、自由”,下端的红色绶带上用西班牙文写着“多米尼加共和国”。