对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 相关文章推荐
Firebug入门指南(Firefox浏览器)
Aug 21 Javascript
为EasyUI的Tab标签添加右键菜单的方法
Jul 14 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
Jun 20 Javascript
jQuery取得设置清空select选择的文本与值
Jul 08 Javascript
js中对函数设置默认参数值的3种方法
Oct 23 Javascript
JavaScript事件类型中UI事件详解
Jan 14 Javascript
Angular设置title信息解决SEO方面存在问题
Aug 19 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
JS ES6中setTimeout函数的执行上下文示例
Apr 27 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
Sep 12 Javascript
vue-cli如何引入bootstrap工具的方法
Oct 19 Javascript
node.js通过axios实现网络请求的方法
Mar 05 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
php 引用(&)详解
2009/11/20 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
php格式化json函数示例代码
2016/05/12 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
python 远程统计文件代码分享
2015/05/14 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
Python内存映射文件读写方式
2020/04/24 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
Linux文件系统类型
2012/02/15 面试题
优纳科技软件测试面试题
2012/05/15 面试题
干部培训自我鉴定
2014/01/22 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书