本文讲述的都是Ajax的基础。为和我一样初学Ajax的人提供一些方便。
首先说明一下,Ajax不是一种技术,而是几种技术的组合。
它包含:
XMLHttpRequest
JavaScript
DOM
XML
XHTML
CSS
XSLT
这几种技术在Ajax中起到的作用大体上如下:
l 使用Document Object Model进行动态显示和交互;
l 使用XML和XSLT进行数据交互和操作;
l 使用XMLHttpRequest与服务器进行异步通信;
l 使用JavaScript绑定一切。
下面列举一些上面技术的一些常用属性或方法
XMLHttpRequest的常用的属性和方法
常用的XmlHttpRequest对象属性:
| 属性 | 描述 |
| onreadystatechange | 每次状态改变所触发事件的事件处理程序 |
| readyState | 对象状态值: · 0 = 未初始化(uninitialized) · 1 = 正在加载(loading) · 2 = 加载完毕(loaded) · 3 = 交互(interactive) · 4 = 完成(complete)
|
| responseText | 从服务器进程返回的数据的字符串形式 |
| responseXML | 从服务器进程返回的DOM兼容的文档数据对象 |
| status | 从服务器返回的数字代码,比如404(未找到)或200(就绪) |
| statusText | 伴随状态码的字符串信息 |
常用的XmlHttpRequest对象方法:
| 属性 | 描述 |
| abort() | 停止当前请求 |
| getAllResponseHeaders() | 将http请求的所有响应首部作为键/值对返回 |
| getResponseHeader(“HeaderLabel”) | 返回指定首部的字符串值 |
| open(“method”,”URL”,[asyncFlag,[,”username”[,”password”]]]) | 建立对服务器的调用,method参数可以是GET,POST或PUT;URL参数可以是相对或绝对URL;该方法有三个可选参数,asyncFlag:是否非同步标记 username:用户名 password:密码 |
| send(Content) | 向服务器发送请求 |
| setRequestHeader(“Label”,”value”) | 把指定首部设置为所提供的值,在调用该方法之前必须先调用open方法。 |
DOM中常用对象的方法和属性:
HTML文档中的常用节点类型:
| 接口 | nodeType | 备注 |
| Element | 1 | 元素节点 |
| Text | 3 | 文本节点 |
| Document | 9 | Document |
| Comment | 8 | 注释文本 |
| DocumentFragment | 11 | Document片段 |
| Attribute | 2 | 节点属性 |
常用的Document的方法:
| 方法 | 描述 |
| createAttribute() | 用指定的名字创建新的Attribute节点 |
| createComment() | 用指定的字符串创建新的Comment节点 |
| createElement() | 用指定的标记名创建新的Element节点 |
| createTextNode() | 用指定的文本创建新的TextNode节点 |
| getElementId() | 返回文档中具有指定id属性的Element节点 |
| getElementByTagName() | 返回文档中具有指定标记名的所有Element节点 |
Element常用的属性和方法
| 方法/属性 | 描述 |
| tagName | 以字符串形式返回指定属性的值 |
| getAttributeNode() | 以Attribute节点的形式返回指定属性的值 |
| getElementByTagName() | 返回一个Node数组,包含具有指定标记名的所有Element节点的子孙节点,其顺序为在文档中出现的顺序 |
| hasAttribute() | 如果该元素具有指定名字的属性,则返回true |
| removeAttribute() | 从元素中删除指定的属性 |
| removeAttributeNode() | 从元素的属性列表中删除指定的Attribute节点 |
| setAttribute() | 把指定的属性设置为指定的字符串值,如果该属性不存在则添加一个新属性 |
| setAttributeNode() | 把指定的Attribute节点添加到该元素的属性列表中 |
Node常用的属性和方法
| 方法/属性 | 描述 |
| Attributes | 如果该节点是一个Element,则以NamedNodeMap形式返回该元素的属性 |
| childNodes | 以Node[]的形式存放当前节点的子节点,如果没有节点,则返回空数组 |
| firstChild | 以Node的形式返回当前节点的第一个节点,如果没有节点则返回NULL |
| lastChild | 以Node的形式返回当前节点的最后一个节点,如果没有节点则返回NULL |
| parentNode | 以Node的形式返回当前节点的父节点,如果没有节点则返回NULL |
| previousSibling | 以Node的形式返回紧挨当前节点,位于它之前的兄弟节点,如果没有这样的节点则返回NULL |
| nextSibling | 以Node的形式返回当前节点的下一个兄弟节点,如果没有节点则返回NULL |
| nodeName | 节点的名字,Element节点则代表Element标记的名称 |
| nodeType | 代表节点的类型 |
| appendChild() | 通过把一个节点增加到当前节点的childNode[]组,给文档树增加节点 |
| cloneNode() | 复制当前节点,或者复制当前节点以及它的所有子孙节点 |
| hasChildNodes() | 如果当前节点拥有子结点,则返回true |
| insertBefore() | 给文档树插入一个节点,位置在当前节点的指定位置之前,如果该节点已经存在,则删除之,然后再将节点插入到它的位置。 |
| removeChild() | 从文档树中删除并返回指定的子结点 |
| replaceChild() | 从文档树中删除并返回指定的子结点,用另一个节点替代它。 |
本文介绍Ajax的基本概念和技术组合,包括XMLHttpRequest、JavaScript、DOM等,并详细列出各技术的关键属性和方法。
216

被折叠的 条评论
为什么被折叠?



