对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 相关文章推荐
js实现幻灯片播放图片示例代码
Nov 07 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 Javascript
jquery插件corner实现圆角边框的方法
Mar 09 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
JS基于VML技术实现的五角星礼花效果代码
Oct 26 Javascript
JavaScript预解析及相关技巧分析
Apr 21 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
jquery利用json实现页面之间传值的实例解析
Dec 12 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 jQuery
在layui.use 中自定义 function 的正确方法
Sep 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
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
input按钮的事件处理大全
2010/12/10 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
详解组件库的webpack构建速度优化
2018/06/18 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python解析最简单的验证码
2016/01/07 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python调用摄像头显示图像的实例
2018/08/03 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
几个SQL的面试题
2014/03/08 面试题
服装厂厂长岗位职责
2013/12/27 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
年终奖发放方案
2014/06/02 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
公司员工体检通知
2015/04/21 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书