Discuz教程网

对xmlHttp对象的理解

[复制链接]
authicon 09927306 发表于 2011-1-18 12:48:37 | 显示全部楼层 |阅读模式
xmlHttp是一套在JavaScript脚本语言中通过Http协议传送或者接收XML及其他数据的API。
1 xmlHttp是一套在JavaScript脚本语言中通过Http协议传送或者接收XML及其他数据的API。
(xmlHttp是一套API,通过Http协议进行数据的传送和接收。)
2 xmlHttp提供客户端同http服务器通讯的协议,客户端通过xmlHttp对象(MSXML2.XMLHTTP.3.0),向http服务器发送请求,使用DOM处理回应。
  2.1 xmlHttp对象的创建方式区分IE浏览器和非IE浏览器:
    例子:创建一个xmlHttp对象,并向服务器请求一个xml文档,返回文档后显示。下面分别就IE和非IE进行实例讲解
    1) IE浏览器使用ActiveXObject方式创建xmlHttp对象:
      var xmlHttpReq = new ActiveXObject(\"MSXML2.XMLHTTP.3.0\");
      xmlHttpReq.open(\"GET\", \"http://localhost/test.xml\", false);
      xmlHttpReq.send();
      alert(xmlHttpReq.responseText);
    2) 非IE浏览器使用XMLHttpRequest方式创建xmlHttp对象:
      var xmlHttpReq = new XMLHttpRequest();
      xmlHttpReq.open(\"GET\", \"http://localhost/test.xml\", false);
      xmlHttpReq.send();
      alert(xmlHttpReq.responseText);
  2.2 创建完XMLHttp对象以后,因为它是一套API,所以它有很多的方法和属性,如上面用到的open()、send()、responseText。
    xmlHttp对象的代码处理方式比较固定。因此下面要做的就只是按例子顺序进行理解就可以了。
3 xmlHttp的最大好处是更新页面的部分内容不需要刷新整个页面。





上一篇:改进UCHOME的记录发布,增强可访问性用户体验
下一篇:Grid得到选择行数据的方法总结
authicon  楼主| 09927306 发表于 2011-1-18 12:49:42 | 显示全部楼层

对xmlHttp对象方法和属性的理解

客户端可以通过xmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用文档对象模型(DOM)处理回应。
-
-
1 客户端可以通过xmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用文档对象模型(DOM)处理回应。
1.1 我的理解:
用户的每次操作,都会有数据产生。
通过DOM或者JS编写对数据进行封装,或者浏览器自身对http协议的一些数据进行封装。
通过xmlHttp对象的一些方法,传入数据参数,向http服务器发送请求。
返回结果通过DOM进行处理。
2 xmlHttp对象的成员。
2.1 属性
onreadystatechange:当readyState属性值发生改变时,触发的事件处理句柄。
例子:xmlHttp.onreadystatechange = functionHandler;
function functionHandler() {
if(xmlHttp.readyState == 4) {
alert("当readyState状态为4时,弹出此窗口!!!");
}
}
//句柄只有方法名称,没有这对“()”括号。赋值时要注意理解。
readyState:这个属性表示状态;总共有五种状态:
0 (未初始化)
对象已建立,但是尚未初始化(尚未调用open方法)

1 (初始化)
对象已建立,尚未调用send方法

2 (发送数据)
send方法已调用,但是当前的状态及http头未知

3 (数据传送中)
已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,

4 (完成)
数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据

// 因为xmlHttp的编写方式固定,因此每一个步骤都会伴随着状态的改变,因此时刻监听事件处理句柄,执行相应的逻辑。
代码执行顺序:
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");
xmlHttpReq.open("GET", "http://localhost/test.xml", false);
xmlHttpReq.send();
alert(xmlHttpReq.responseText);

2.2 方法
open(Method, Url, Syn, User, Password);
创建一个新的xmlHttp对象时,实际上就是创建一个http请求。
此方法指定请求的方式(GET/POST/PUT/PROPFIND)、 URL、异步(默认情况为true)、验证信息。
采用异步方式(true)时,状态改变时会调用onreadystatechange属性指定的回调函数。
send();
此方法的同步或异步方式取决于open方法中的Syn参数,如果Syn == false,此方法将会等待请求完成或者超时时才会返回,如果Syn == true,此方法将立即返回。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-6-20 00:27

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表