本文讲述的都是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() | 从文档树中删除并返回指定的子结点,用另一个节点替代它。 |