对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 addBookmark 加入收藏 多浏览器兼容
Aug 15 Javascript
使用jQuery模板来展现json数据的代码
Oct 22 Javascript
关于Jquery操作Cookie取值错误的解决方法
Aug 26 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
Dec 04 Javascript
node.js中使用socket.io制作命名空间
Dec 15 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
Jan 28 Javascript
Bootstrap的modal拖动效果
Dec 25 Javascript
JavaScript之map reduce_动力节点Java学院整理
Jun 29 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
Aug 16 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
php 解压zip压缩包内容到指定目录的实例
Jan 23 Javascript
通过vue写一个瀑布流插件代码实例
Sep 07 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与php MySQL 之间的关系
2009/07/17 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
如何通过python检查文件是否被占用
2020/12/18 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
类如何去实现接口
2013/12/19 面试题
南京软件公司的.net程序员笔试题
2014/08/31 面试题
承认错误的检讨书
2014/01/30 职场文书
开朗女孩的自我评价
2014/02/10 职场文书
申论倡议书范文
2014/05/13 职场文书
企业宣传口号
2014/06/12 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python