首页编程java编程java中的dom是什么?网页技术中dom是什么

java中的dom是什么?网页技术中dom是什么

编程之家2023-10-13101次浏览

各位老铁们好,相信很多人对java中的dom是什么都不是特别的了解,因此呢,今天就来为大家分享下关于java中的dom是什么以及网页技术中dom是什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

java中的dom是什么?网页技术中dom是什么

程序员总说的DOM到底是什么

大家好,有些词儿,程序员之间虽然天天说,彼此之间心照不宣,但是在面对一些非技术的产品同学的时候,对方却不一定能一下子就get到点。这个系列的文章就是为了解决这种尴尬的,理想的效果是,只要一提起这些词儿,你脑海中就会出现一幅图或者一段精妙的解释,那我们就成功了。

今天Java培训班讲解的词儿是DOM,是程序员里面最基础、最常用的一个东西。它的全称是文档对象模型(DocumentObjectModel),光看名字太抽象,简单解释一下。我们知道,一个网页,其实就是一个html文件,经过浏览器的解析,最终呈现在用户面前。html语言我们也讲过,是由很多标签组成的,像这样:

里面的head、body就是标签。这些标签不是随意摆放的,他们有自己的规则。首先它们是嵌套的,一层套一层,比如html套body,body又套p标签。其次,每一层,可以同时存在很多标签,比如head和body就是一层的,他们被外面的html套着。这样的结构很像我们电脑里的文件夹,「我的电脑」是最外面的一层,里面套着CDEF盘,每个盘里又有很多文件夹,文件夹里又有文件夹,最后才是很多具体的文件。

java中的dom是什么?网页技术中dom是什么

为什么要按照这种结构来组织呢?其实就是方便解析和查询。解析的时候,从外到里,循序渐进,好比按照图纸盖房子,先盖围墙,再盖走廊,最后才是卧室。查询的时候,会有一条明确的路线,比如D盘-->岛国文化交流-->影视作品-->苍老师.avi,这样一层一层的缩小范围,查找效率会非常高。

所以,浏览器在解析html文档的时候,会把每个标签抽象成代码里的对象,然后按照这种层次分明的结构组织起来,这就是文档对象模型,DOM了。画个图表示一下就是这样的:

这就是数据结构里典型的「树」了。所以大家经常说DOM树,其实是一个意思。浏览器在解析html的时候,会在它的内部构建这样一棵DOM树,然后按照这棵树上的层次顺序,依次来解析每个标签。标签解析完了,用户就看到了网页的内容。

java中的dom是什么?网页技术中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树的效率。

北大青鸟java培训:什么是DOM

DOM(DocumentObjectModel)即文档对象模型,针对HTML和XML文档的API(应用程序接口)。

DOM描绘了一个层次化的节点树,运行开发人员添加、移除和修改页面的某一部分。

DOM脱胎于Netscape及微软公司创始的DHTML(动态HTML),但现在它已经成为表现和操作页面标记的真正跨平台、语言中立的方式。

1.节点加载HTML页面时,Web浏览器生成一个树型结构,用来表示页面内部结构。

DOM将这种树型结构理解为由节点组成。

我们理解几个概念,html标签没有父辈,没有兄弟,所以html标签为根标签。

head标签是html子标签,meta和title标签之间是兄弟关系。

宁夏电脑培训http://www.kmbdqn.cn/认为如果把每个标签当作一个节点的话,那么这些节点组合成了一棵节点树。

2.节点种类:元素节点、文本节点、属性节点。

网页技术中dom是什么

1.文档对象模型(DOM)

DOM是HTML和XML文档的编程基础,它定义了处理执行文档的途径。编程者可以使用DOM增加文档、定位文档结构、填加修改删除文档元素。W3C的重要目标是把利用DOM提供一个使用于多个平台的编程接口。W3C

DOM被设计成适合多个平台,可使用任意编程语言实现的方法。

2.节点接口

XML

parser用来装载XML文档到缓存中,文档装载时,可以使用DOM进行检索和处理。DOM采用树形结构表示

XML文档,文档元素是树的最高阶层,该元素有一个或多个孩子节点用来表示树的分枝。

节点接口程序通常用来读和写XML节点树中的个别元素,文档元素的孩子节点属性可以用来构造个别元素节点。XML

parser用来证明Web中的DOM支持遍历节点树的所有函数,并可通过它们访问节点和及其属性、插入删除节点、转换节点树到XML中。

所有Microsoft

XML

parser函数得到W3C

XML

DOM的正式推荐,除了load和loadXML函数(正式的DOM不包括标准函数loading

XML文档)。有13个节点类型被Microsoft

XML

parser支持,下面列出常用节点:

节点类型

例子

Document

type

<!DOCTYPE

food

SYSTEM

"food.dtd">

Processing

instruction

<?xml

version="1.0"?>

Element

<drink

type="beer">Carlsberg</drink>

Attribute

type="beer"

Text

Carlsberg

3.使用XML

parser

为了更加熟练的处理XML文档,必须使用XML

parser。Microsoft

XML

parser是IIS5.0所带的一个COM组件,一旦安装了IIS5.0,parser可以利用HTML文档和ASP文件中的脚本。

Microsoft

XMLDOM

parser支持以下编程模式:

----支持

JavaScript,

VBScript,

Perl,

VB,

Java,

C++

等等

----支持

W3C

XML

1.0

XML

DOM

----支持

DTD

validation

如果使用IE5.0中的JavaScript,可以使用下面的XML文档对象:

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

如果使用VBScript,可以使用下面的XML文档对象:

set

xmlDoc

=

CreateObject("Microsoft.XMLDOM")

如果使用ASP,可以使用下面的XML文档对象:

set

xmlDoc

=

Server.CreateObject("Microsoft.XMLDOM")

4.装载一个XML文件到parser中

下面的代码装载存在的XML文档进入XML

parser:

<script

language="JavaScript">

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

//

.......

processing

the

document

goes

here

</script>

第一行脚本增加了一个Microsoft

XML

parser实例,第三行装载名为”note.xml”的XML文档进入parser中。第二行保证文档装载完成以后parser进行下一步工作。

5.

parseError对象

打开XMl文档时,XML

Parser产生错误代码,并存在parseError对象中,包括错误代码、错误文本和错误行号,等信息。

6.文件错误

下面的例子将试图装载一个不存在的文件,然后产生相应的错误代码:

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("ksdjf.xml")

document.write("<br>Error

Code:

")

document.write(xmlDoc.parseError.errorCode)

document.write("<br>Error

Reason:

")

document.write(xmlDoc.parseError.reason)

document.write("<br>Error

Line:

")

document.write(xmlDoc.parseError.line)

7.XML错误

下面使用不正确的格式装载XMl文档,

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note_error.xml")

document.write("<br>Error

Code:

")

document.write(xmlDoc.parseError.errorCode)

document.write("<br>Error

Reason:

")

document.write(xmlDoc.parseError.reason)

document.write("<br>Error

Line:

")

document.write(xmlDoc.parseError.line)

8.

parseError属性

属性

errorCode

返回长整型错误代码

reason

返回字符串型错误原因

line

返回长整型错误行号

linePos

返回长整型错误行号位置

srcText

返回字符串型产生错误原因

url

返回url装载文档指针

filePos

返回长整型错误文件位置

9.遍历节点树

一种通用的析取XML文档的方法是遍历节点树和它的元素值。下面是使用VBScript写的遍历节点树的程序代码:

set

xmlDoc=CreateObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

for

each

x

in

xmlDoc.documentElement.childNodes

document.write(x.nodename)

document.write(":

")

document.write(x.text)

next

10.为XML文件提供HTML格式

XML的一个优点是把HTML文档和它的数据分离开。通过使用浏览器中的XML

parser,HTML页面可以被构造成静态文档,通过JavaScript提供动态数据。下面的例子使用JavaScript读取XML文档,写XML数据成HTML元素:

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

nodes

=

xmlDoc.documentElement.childNodes

to.innerText

=

nodes.item(0).text

from

.innerText

=

nodes.item(1).text

header.innerText

=

nodes.item(2).text

body.innerText

=

nodes.item(3).text

11.通过名称访问XML元素

下面的例子使用JavaScript读取XML文档,写XML数据成HTML元素:

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

document.write(xmlDoc.getElementsByTagName("from").item(0).text)

12.装载纯XML文本进入parser

下面的代码装载文本字符串进入XML

parser

<script

language="JavaScript">

var

text="<note>"

text=text+"<to>Tove</to><from>Jani</from>"

text=text+"<heading>Reminder</heading>"

text=text+"<body>Don't

forget

me

this

weekend!</body>"

text=text+"</note>"

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.loadXML(text)

//

.......

processing

the

document

goes

here

</script>

13.装载XML进入Parser

<html>

<body>

<script

language="javascript">

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

document.write("The

first

XML

element

in

the

file

contains:

")

document.write(xmlDoc.documentElement.childNodes.item(0).text)

</script>

</body>

</html>

遍历XML节点树:

<html>

<body>

<script

language="VBScript">

txt="<h1>Traversing

the

node

tree</h1>"

document.write(txt)

set

xmlDoc=CreateObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

for

each

x

in

xmlDoc.documentElement.childNodes

document.write("<b>"

&

x.nodename

&

"</b>")

document.write(":

")

document.write(x.text)

document.write("<br>")

next

</script>

</body>

</html>

装载XML

进入

HTML

<html>

<head>

<script

language="JavaScript"

for="window"

event="onload">

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load("note.xml")

nodes

=

xmlDoc.documentElement.childNodes

to.innerText

=

nodes.item(0).text

from.innerText

=

nodes.item(1).text

header.innerText

=

nodes.item(2).text

body.innerText

=

nodes.item(3).text

</script>

<title>HTML

using

XML

data</title>

</head>

<body

bgcolor="yellow">

<h1>Refsnes

Data

Internal

Note</h1>

<b>To:

</b><span

id="to"></span>

<br>

<b>From:

</b><span

id="from"></span>

<hr>

<b><span

id="header"></span></b>

<hr>

<span

id="body"></span>

</body>

</html>

文章到此结束,如果本次分享的java中的dom是什么和网页技术中dom是什么的问题解决了您的问题,那么我们由衷的感到高兴!

java中代理类有什么作用,java中为什么要给类使用代理它有哪些好处java中%dn是什么意思 c语言中, %dn 是什么意思