DOM

作者: 毛毛独角兽 | 来源:发表于2017-12-05 16:32 被阅读0次

1.什么是DOM

DOM的全称是Document Object Model 文档对象模型,DOM就是针对HTML和XML提供的一个API。就是说为了能以编程的方法操作这个HTML的内容(比如添加某些元素、修改元素的内容、删除某些元素),我们把这个HTML看做一个对象树(DOM树),它本身和里面的所有东西,比如<div></div>这些标签都看做一个对象,每个对象都叫做一个节点(node),节点可以理解为DOM中所有Object的父类。

2. DOM有什么用

为了操作HTML中的元素,比如说我们要通过JS吧这个网页的标题改了,直接这样就可以了:

document.title = 'how to cook';

这个API使得在网页被下载到浏览器之后改变网页的内容成为可能。

3. ducument

当浏览器下载到一个网页,通常是HTML,这个HTML就叫document(这也是DOM树种的一个node),document通常是整个DOM树的根节点。这个document包含了标题、URL等属性,可以直接在JS中访问到。
在一个浏览器窗口中可能有多个document,例如iframe加载的页面,每一个都是一个document。
在JS 中,可以通过document访问其子节点(其实任何节点都可以),如:

document.body;
document.getElementById('xxx');

4. BOM

BOM是Browser Object Model 浏览器对象类型
刚才说过DOM是为了操作文档出现的接口,那BOM顾名思义其实就是为了控制浏览器的行为而出现的接口。
浏览器可以做什么?
比如跳转到另一个页面、前进、后退等,程序还可能需要获取屏幕的大小之类的参数。
所以BOM就是为了解决这些事情出现的接口。不如我们要让浏览器跳转到另一个页面,只需要

location.href="http://www.xxxxx.com";
这个location就是BOM里的一个对象。

5. window

window也是BOM的一个对象,除去编程意义上的“兜底对象”之外,通过这个对象可以获取窗口位置、确定窗口大小、弹出对话框等等。例如我要关闭当前窗口:

window.close();

DOM是为了操作文档出现的API,document是其的一个对象;
BOM是为了操作浏览器出现的API,window是其的一个对象。

6.进阶

  • JavaScript不能真正改变DOM,它仅仅是改变呈现内容,当你刷新的时候就会发现一切都被还原了。
  • 但是你可以把这些改变用请求的方式传递非后端语言接口,由后端语言比如PHP Python Java Node等来进行后续的操作,他们接到你的请求后去修改服务器数据,这样改变就生成了。
  • 但是用户的交互,比如弹窗、滑过变色的等等根本梅西要让服务器也跟着掺和,因为交互只是暂时的,用完了还要变成默认的,不需要保存到服务器,只要保证交互的时候有反馈就行了。
  • 这就是前端。
  • HTML表达静态结构(网页有哪些元素,每个元素代表什么意义,元素包含了什么内容)
  • CSS呈现美化(元素的颜色、形状、布局)
  • JavaScript负责动态交互(操作DOM,使用Ajax进行异步刷新,与服务器交互)

相关文章

  • dom 级别和dom 事件处理

    dom级别:dom0 dom1 dom2 dom3 dom事件处理:dom0 dom2 dom3 (1级DOM标准...

  • WY-DOM编程

    DOM Document Object Model DOM Core DOM HTML DOM Style DOM...

  • DOM事件

    DOM级别与DOM事件 DOM级别:DOM0级、DOM1级、DOM2级、DOM3级DOM事件:DOM0级事件处理、...

  • DOM事件

    DOM级别与DOM事件 DOM级别:DOM0级,DOM1级,DOM2级和DOM3级DOM事件:DOM0级事件处理,...

  • js红包雨活动

    function Block( dom ){ this.dom = dom; //dom this.parentW...

  • DOM操作的分类

    DOM操作分为三个方面,即DOM Core(核心)、HTML-DOM和CSS-DOM。 DOM Core DOM ...

  • 虚拟 DOM 和 diff 算法

    虚拟 DOM(Virtual DOM) 通过 JS 对象表示 DOM 结构,虚拟DOM 是对 DOM 的抽象 通常...

  • jQuery——DOM

    DOM操作分类 一般来说,DOM操作分为3个方面,即DOM Core、HTML-DOM、CSS-DOM。 DOM ...

  • JavaScript高级程序设计前四章

    1. DOM级别 1.1 DOM1级 由DOM核心(DOM Core)和DOM HTML两个模块组成。 DOM核心...

  • DOM分级详解

    DOM1 级(DOM Level 1) DOM1 级由两个模块组成:DOM核心(DOM Core)和DOM HTM...

网友评论

      本文标题:DOM

      本文链接:https://www.haomeiwen.com/subject/trxcixtx.html