对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 RadioButtonList获取选中值
Apr 09 Javascript
jQuery 性能优化指南(2)
May 21 Javascript
javascript或asp实现的判断身份证号码是否正确两种验证方法
Nov 26 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
Aug 02 Javascript
Checbox的操作含已选、未选及判断代码
Nov 07 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
jQuery实现轮播图及其原理详解
Apr 12 jQuery
Vue中多个元素、组件的过渡及列表过渡的方法示例
Feb 13 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
DOM 事件流详解
2015/01/20 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
python用户评论标签匹配的解决方法
2018/05/31 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
Python 变量的创建过程详解
2019/09/02 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
Python多线程的退出控制实现
2020/08/10 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
DTD的含义以及作用
2014/01/26 面试题
海飞丝的广告词
2014/03/20 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
总经理检讨书范文
2015/02/16 职场文书
2015入党自传格式范文
2015/06/26 职场文书
大学生十八大感想
2015/08/11 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang