对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 相关文章推荐
关于使用runtimeStyle属性问题讨论文章
Mar 08 Javascript
extjs DataReader、JsonReader、XmlReader的构造方法
Nov 07 Javascript
JavaScript的类型简单说明
Sep 03 Javascript
基于jQuery的动态表格插件
Mar 28 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
JS仿hao123导航页面图片轮播效果
Sep 01 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
angular 数据绑定之[]和{{}}的区别
Sep 25 Javascript
js中int和string数据类型互相转化实例
Jan 16 Javascript
关于vue项目中搜索节流的实现代码
Sep 17 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
Javascript异步执行不按顺序解决方案
Apr 30 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分页思路以及在ZF中的使用
2012/05/30 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
Python算法之栈(stack)的实现
2014/08/18 Python
Python实现的简单发送邮件脚本分享
2014/11/07 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
python如何使用代码运行助手
2020/07/03 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
什么是Rollback Segment
2013/04/22 面试题
手术室护士自我鉴定
2013/10/14 职场文书
大学生个人简历自我评价
2013/11/16 职场文书
工厂保洁员岗位职责
2013/12/04 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
工作经验交流材料
2014/12/30 职场文书
个人年终总结开头
2015/03/06 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
HTML中的表单元素介绍
2022/02/28 HTML / CSS