对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 Math ceil()、floor()、round()三个函数的区别
Mar 09 Javascript
JQuery实现简单时尚快捷的气泡提示插件
Dec 20 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
Apr 29 Javascript
深入分析JSONP跨域的原理
Dec 10 Javascript
JS实现简洁、全兼容的拖动层实例
May 13 Javascript
Node.js复制文件的方法示例
Dec 29 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
vue-cli3.0 环境变量与模式配置方法
Nov 08 Javascript
详解express使用vue-router的history踩坑
Jun 05 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
Jan 26 Vue.js
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实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
js快速排序的实现代码
2013/12/08 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
django批量导入xml数据
2016/10/16 Python
python函数的作用域及关键字详解
2019/08/20 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
在校硕士自我鉴定
2014/01/23 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
中小企业员工手册范本
2015/05/14 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
志愿服务心得体会
2016/01/15 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
详解python的异常捕获
2022/03/03 Python
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
进行数据处理的6个 Python 代码块分享
2022/04/06 Python
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL