对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 格式字符串的应用
Mar 29 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
Jun 19 Javascript
Query中click(),bind(),live(),delegate()的区别
Nov 19 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
Vue2.0 UI框架ElementUI使用方法详解
Apr 14 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
Feb 27 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
Aug 27 Javascript
在vue 中使用 less的教程详解
Sep 26 Javascript
QML实现圆环颜色选择器
Sep 25 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
js消除图片小游戏代码
Dec 11 Javascript
详解Vue的watch中的immediate与watch是什么意思
Dec 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
php获取文件大小的方法
2014/02/26 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
Python xlwt模块使用代码实例
2020/06/10 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
python中K-means算法基础知识点
2021/01/25 Python
is_file和file_exists效率比较
2021/03/14 PHP
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
班会关于环保演讲稿
2013/12/29 职场文书
高校教师思想汇报
2014/01/11 职场文书
军人违纪检讨书
2014/02/04 职场文书
商务助理求职信范文
2014/04/20 职场文书
支行行长竞聘演讲稿
2014/05/15 职场文书
企业文化标语大全
2014/06/10 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
办公室禁烟通知
2015/04/23 职场文书
观看建国大业观后感
2015/06/01 职场文书