对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中数据共享和数据传递
Apr 25 Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 Javascript
js实现按钮控制带有停顿效果的图片滚动
Aug 30 Javascript
微信小程序  action-sheet详解及实例代码
Nov 09 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
javascript实现滑动解锁功能
Mar 22 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
Jun 13 Javascript
用js实现before和after伪类的样式修改的示例代码
Sep 07 Javascript
vue form check 表单验证的实现代码
Dec 09 Javascript
JavaScript迭代器的含义及用法
Jun 21 Javascript
Openlayers学习之地图比例尺控件
Sep 28 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 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冒泡排序算法的深入理解
2013/06/09 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
简单实现轮播图效果的实例
2016/07/15 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
node实现基于token的身份验证
2018/04/09 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
JS实现滑动插件
2020/01/15 Javascript
python写xml文件的操作实例
2014/10/05 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
python 列表降维的实例讲解
2018/06/28 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
python实现中文文本分句的例子
2019/07/15 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
python字符串下标与切片及使用方法
2020/02/13 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
广州地球村科技数据库题目
2016/04/25 面试题
明信片寄语大全
2014/04/08 职场文书
暑假学习心得体会
2014/09/02 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
户外亲子活动总结
2015/05/08 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技