对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 相关文章推荐
jquery 最简单的属性菜单
Oct 08 Javascript
多引号嵌套的变量命名的问题
May 09 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
Jan 19 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
Apr 07 Javascript
js中日期的加减法
May 06 Javascript
JS小数运算出现多为小数问题的解决方法
Jun 02 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
Aug 08 Javascript
AngularJs表单验证实例代码解析
Nov 29 Javascript
详解vue2 $watch要注意的问题
Sep 08 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
Aug 11 Javascript
Node.js API详解之 assert模块用法实例分析
May 26 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 获取select下拉列表框的值
2010/05/08 PHP
使用PHP编写的SVN类
2013/07/18 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
python str字符串转uuid实例
2020/03/03 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
小学教师的个人自我鉴定
2013/10/26 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
学校安全管理责任书
2014/07/23 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
员工工作表扬信
2015/05/05 职场文书
创业计划书之家政服务
2019/09/18 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js