`
zydky
  • 浏览: 87268 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

【旧文】AJAX总结(二)

    博客分类:
  • ajax
阅读更多

四、DOM

1.DOM概述

XHR对象提供了跟服务器通讯的能力,而DOM提供了访问、动态更新页面的能力。

DOM是W3C推出的文档对象模型,是表示文档和访问、操作构成文档的各种元素的API,被定义为独立于语言的标准,在javascript和java以及其他语言中都有实现。

在DOM中,HTML文档的层次机构被表示为树形结构,树的节点表示文档中的各种内容。HTML文档的树形表示主要包含表示元素或标记(如<table>和<p>)的节点和表示文本串的节点构成。

DOM定义了许多接口,其中比较通用的是其核心API:NodeList、Node、Document、Element接口,Document和Element接口都是Node接口的子接口。在JavaScript实现的DOM中还包含HTML文档专用的API,如HTMLDocument、HTMLElement。另外,DOM为许多HTML元素定义了标记专有的接口,如HTMLBodyElement、HTMLTitleElement。

 

2. Node接口

Node接口是文档树中所有节点的顶级父接口,定义了通用的属性和方法。

常用属性:

 

属性

 

说明

 

nodeType

 

代表节点的类型

 

nodeName

 

节点的名字,Element节点则代表Element的标记名称

 

parentNode

 

以Node的形式返回当前节点的父节点。如果没有父节点,为null

 

childNodes

 

以NodeList的形式返回当前节点的子节点

 

firstChild

 

以Node的形式返回当前节点的第一个子节点,如果没有子节点,则为null

 

lastChild

 

以Node的形式返回当前节点的最后一个子节点,如果没有子节点,则为null

 

previousSibling

 

以Node的形式返回当前节点的前一个兄弟节点,如果没有,则为null

 

nextSibling

 

以Node的形式返回当前节点的下一个兄弟节点,如果没有,则为null

 

nodeValue

 

如果是TextNode节点,该属性代表节点的文本值

注意:在java的实现中,与上述属性对应的是get/set方法,如getNodeType()、getFirstChild()等。

常用方法:

 

方法

 

说明

 

hasChildNodes()

 

如果当前节点拥有子节点,则返回true

 

appendChild()

 

把一个节点增加到当前节点的childNodes,给文档树增加节点

 

removeChild()

 

从文档树中删除并返回指定的子节点

 

replaceChild()

 

从文档树中删除并返回指定的子节点,用另一个节点替换

 

insertBefore()

 

在当前节点的指定子节点之前插入一个节点

3. Document接口

DOM 树的根节点是个Document对象,该对象的documentElement属性引用表示文档根元素的Element对象,对于HTML文档,就是<html>元素。Document接口的常用方法有:

 

方法

 

说明

 

createAttribute()

 

用指定的名字创建新的Attr节点

 

createElement()

 

用指定的名字创建新的Element节点

 

createTextNode()

 

用指定的名字创建新的TextNode节点

 

getElementById()

 

返回文档中具有指定id属性的Element节点

 

getElementsByTagName()

 

以NodeList形式返回文档中具有指定标记名的所有Element节点

 

继承Node接口的方法

 

 

在HTML文档中,document对象就是Document接口的一个实现,准确的说,是HTMLDocument接口的实现。document对象还有许多HTML专用的方法和属性,如:

document.write();

document.all;

document.forms[];

4. Element接口

    常用方法:

 

方法

 

说明

 

hasAttribute()

 

如果该元素具有指定名字的属性,返回true

 

getAttribute()

 

以字符串形式返回指定属性的值

 

setAttribute()

 

把指定属性值设置为指定的字符串,不存在则添加

 

removeAttribute()

 

从元素中删除指定的属性

 

getAttributeNode()

 

以Attr节点的形式返回指定的属性

 

setAttributeNode()

 

把指定的Attr节点添加到该元素的属性列表中

 

removeAttributeNode()

 

从元素的属性列表中删除指定的Attr节点

 

getElementsByTagName()

 

返回一个NodeList,包含具体指定标记名称的该元素的所有子节点

 

继承Node接口的方法

 

 

4. NodeList接口

在javascript实现的DOM中,NodeList接口的使用类似与Node[]的形式,可以通过指定索引下标的形式引用,如:

var nodeLists = element. childNodes;

for(var i = 0;i<nodeLists.length;i++){

  var node = nodeLists[i];

}

6. 其他

document.all属性,IE4提供;

document.getElementsByName()是HTMLDocument接口定义的方法;

innerHTML属性,IE4定义,后来的Netscape6、Mozilla也实现了;

五、

 

AJAX中的中文问题

1. 获取数据时的中文问题

XHR对象同时具有responseText属性和responseXML属性,分别获取服务器返回的文本和兼容DOM的XML文档对象。在服务器返回的数据量比较大而且数据有一定的结构时,我们通常在服务器端组织成xml格式,而在客户端通过responseXML属性获取XML文档对象,这样便于解析。比如:

var results = xmlHttp.responseXML.getElementsByTagName("result");

在返回的数据里包含中文字符时,无法直接获取responseXML属性,需要首先获取responseText属性,再利用微软的Microsoft.XMLDOM组件解析文本格式的xml字符串,如下:

var retXml = xmlHttp.responseText;

var OrgDoc = new ActiveXObject('Microsoft.XMLDOM'); 

OrgDoc.async = false; 

OrgDoc.loadXML(retXml); 

var root = OrgDoc.documentElement;

 2. 提交数据时的中文问题

有时候,需要向服务器端提交中文数据,这种情况一般采用POST方法,把要提交的数据以名值对的形式作为send方法的参数,在服务器端需要做一下设置:

request.setCharacterEncoding("UTF-8");这样,request.getParameter()方法获得的参数就不会出现乱码。

(完)

分享到:
评论

相关推荐

    ajax详细总结

    #### 二、为什么使用AJAX? 1. **提升用户体验**:使用AJAX可以让页面在加载新数据时不必完全重新加载,减少了用户的等待时间。 2. **减少网络流量**:只请求必要的数据,而不是整个页面,有助于节省带宽。 3. **...

    AJAX参考手册大全6本合集.chm

    然而,XML仍然在某些场景下被使用,如数据交换有严格的结构需求或与旧系统集成时。XMLHttpRequest对象可以处理XML数据,通过responseXML属性获取XML文档。 **Ajax+中文帮助文档** 这本文档可能包含了关于AJAX的...

    Ajax传中文值

    总结起来,Ajax传输中文值的关键在于:1) 使用URL编码来传递数据;2) 设置请求头`Content-Type`为`application/x-www-form-urlencoded`;3) 服务器端正确解析POST数据并处理字符编码。遵循这些步骤,我们可以有效地...

    Ajax中文手册(快速上手)

    2. **缓存问题**:Ajax请求可能被浏览器缓存,导致旧数据被重复使用。可以通过添加随机参数或设置HTTP头来防止缓存。 3. **页面状态管理**:因为Ajax请求不会改变浏览器地址栏,可能影响用户的前进后退操作。可以...

    Ajax和jQuery学习笔记

    - **缓存问题**:使用IE浏览器并通过GET方式提交数据时,浏览器可能会缓存请求,导致重复请求时显示旧数据。 - **解决办法**: - 使用POST方式提交数据。 - 在请求地址后面加上一个随机数,防止缓存。 - 设置...

    AjAx数据库ASP

    而对于旧版IE浏览器,则需尝试使用`new ActiveXObject("Msxml2.XMLHTTP")`或`new ActiveXObject("Microsoft.XMLHTTP")`。 ### 发送请求与处理响应 在创建了XMLHttpRequest对象之后,接下来是通过`startRequest(url...

    JQuery中Ajax实现

    此外,值得注意的是,虽然示例中使用的是较旧版本的JQuery库(1.7.2),但在实际项目中建议使用最新版本以获得更好的性能和支持。同时,在处理敏感数据时,还需要注意安全性问题,例如对请求参数进行验证和过滤等。

    Ajax核心XMLHttpRequest总结

    本文主要对Ajax技术中的核心组件XMLHttpRequest进行详细总结。 XMLHttpRequest对象是JavaScript中实现Ajax通信的核心,通过它可以无需刷新页面的情况下与服务器交换数据。XMLHttpRequest对象的使用分为五步: 1. ...

    Jquery1.8.0和jquery1.8中文Api

    jQuery 1.8.0 是该库的一个重要版本,发布于2012年8月13日,它引入了一些新特性、改进和对旧特性的维护。 **API 中文版** jQuery 1.8.0 的中文API文档对于中国开发者来说尤其有价值,因为它提供了中文解释,帮助...

    JQuery中Ajax的Post提交在IE下中文乱码的解决方法

    总结: 在处理Ajax POST请求时,特别是在涉及中文字符时,需要确保前端和后端之间的编码一致性。对于IE浏览器,可能需要额外的编码和解码步骤来保证数据的正确传递。通过在前端使用`encodeURI()`对中文字符串进行...

    jQuery API-1.7 中文/英文

    总结来说,jQuery API 1.7提供了一整套强大而简洁的工具,使得JavaScript开发者能更高效地操作DOM、处理事件、创建动画以及进行Ajax通信。通过学习和熟练掌握这些API,可以极大地提高前端开发效率。中文和英文版的...

    jquery 中文文档说明

    总结,jQuery中文文档详尽地解释了这些概念,从基础到高级,从简单到复杂,逐步引导你成为jQuery的专家。无论你是初学者还是经验丰富的开发者,这份文档都将是你的宝贵资源。通过学习和实践,你可以利用jQuery的强大...

    prototype1.6.0中文chm文档

    5. **1.6.0版本特性**:在1.6.0版本中,可能包含了一些性能优化,新的API,以及对旧版本中已知问题的修复。具体变化需要查看CHM文档中的更新日志。 **CHM文档** "Prototype-1.6.0-zh.chm"文件很可能是Prototype ...

    jquery1.7 中文文档

    总结来说,jQuery 1.7 中文文档是一个非常宝贵的资源,对于JavaScript开发者来说,它不仅详细解释了jQuery的核心概念和API,还提供了丰富的示例和最佳实践,帮助开发者高效地使用jQuery进行Web开发。通过深入学习和...

    Jquery 中文API 2.2与1.83

    总结,jQuery中文API 2.2与1.83版为开发者提供了高效、易用的工具,帮助开发者快速构建交互丰富的Web应用。无论是在DOM操作、事件处理、动画效果还是Ajax通信上,jQuery都以其简洁的API和强大的功能赢得了开发者们的...

    JQUERY 1.3中文文档

    jQuery 1.3致力于跨浏览器兼容性,支持主流的现代浏览器以及较旧的IE版本,这使得开发者无需担心不同浏览器间的差异。 **总结** jQuery 1.3中文文档详细介绍了这些功能和用法,为开发者提供了一套完整的JavaScript...

    jQuery_1.4中文文档

    ### jQuery 1.4中文文档知识点总结 #### 一、新增功能:原始 XMLHttpRequest 对象的直接访问 在 jQuery 1.4 版本中,所有 AJAX 请求的成功回调函数现在都会直接接收原始的 `XMLHttpRequest` 对象作为第三个参数。...

    jquery api中文手册

    同时,jQuery 对旧版浏览器有着良好的支持,但随着技术发展,新的版本可能会逐渐淘汰对某些旧浏览器的支持。 ### 8. 使用指南 "jQuery API 中文手册"中的 "cheatsheet.htm" 是一个快速参考指南,列出了主要的 ...

    JQuery中文手册

    总结,jQuery中文手册是开发者高效开发的得力工具,它详细解释了jQuery的各种API和用法,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过学习和实践,你将能够轻松地利用jQuery创建出互动性强、用户...

Global site tag (gtag.js) - Google Analytics