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


Posted in Javascript onJanuary 17, 2011

1  客户端可以通过xmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用文档对象模型(DOM)处理回应。

1.1 我的理解:

  1. 用户的每次操作,都会有数据产生。
  2. 通过DOM或者JS编写对数据进行封装,或者浏览器自身对http协议的一些数据进行封装。
  3. 通过xmlHttp对象的一些方法,传入数据参数,向http服务器发送请求。
  4. 返回结果通过DOM进行处理。

2  xmlHttp对象的成员。

2.1 属性

  1. onreadystatechange:readyState属性值发生改变时,触发的事件处理句柄。

例子:xmlHttp.onreadystatechange = functionHandler;

   function functionHandler() {

if(xmlHttp.readyState == 4) {

alert("readyState状态为4时,弹出此窗口!!!");

}

  }

//句柄只有方法名称,没有这对“()”括号。赋值时要注意理解。

  1. 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 方法

  1. open(Method, Url, Syn, User, Password);

创建一个新的xmlHttp对象时,实际上就是创建一个http请求。

此方法指定请求的方式(GET/POST/PUT/PROPFIND) URL、异步(默认情况为true)、验证信息。

采用异步方式(true)时,状态改变时会调用onreadystatechange属性指定的回调函数。

  1. send();

此方法的同步或异步方式取决于open方法中的Syn参数,如果Syn == false,此方法将会等待请求完成或者超时时才会返回,如果Syn == true,此方法将立即返回。

Javascript 相关文章推荐
JavaScript XML和string相互转化实现代码
Jul 04 Javascript
写自已的js类库需要的核心代码
Jul 16 Javascript
JavaScript设计模式之建造者模式介绍
Dec 28 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
Nov 16 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
Apr 14 Javascript
BootStrap智能表单demo示例详解
Jun 13 Javascript
javascript中递归的两种写法
Jan 17 Javascript
Vue.js结合bootstrap实现分页控件
Mar 10 Javascript
vue.js中mint-ui框架的使用方法
May 12 Javascript
vue中实现图片和文件上传的示例代码
Mar 16 Javascript
js实现弹出框的拖拽效果实例代码详解
Apr 16 Javascript
Grid得到选择行数据的方法总结
Jan 17 #Javascript
JS中confirm,alert,prompt函数区别分析
Jan 17 #Javascript
JavaScript flash复制库类 Zero Clipboard
Jan 17 #Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
Jan 17 #Javascript
js 数据类型转换总结笔记
Jan 17 #Javascript
简短几句 通俗解释javascript的闭包
Jan 17 #Javascript
javascript 内存回收机制理解
Jan 17 #Javascript
You might like
Php做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
JSON 教程 json入门学习笔记
2020/09/22 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
python实现获取Ip归属地等信息
2016/08/27 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python与R语言的简要对比
2017/11/14 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
使用Python实现牛顿法求极值
2020/02/10 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
python Tornado框架的使用示例
2020/10/19 Python
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
行政助理岗位职责
2013/11/10 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
python编程项目中线上问题排查与解决
2021/11/01 Python