对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 相关文章推荐
jQuery 动画弹出窗体支持多种展现方式
Apr 29 Javascript
通过JS来判断页面控件是否获取焦点
Jan 03 Javascript
使用时间戳解决ie缓存的问题
Aug 20 Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
Sep 20 Javascript
CSS3 media queries结合jQuery实现响应式导航
Sep 30 Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
Javascript ES6中数据类型Symbol的使用详解
May 02 Javascript
总结4个方面优化Vue项目
Feb 11 Javascript
vue-i18n结合Element-ui的配置方法
May 20 Javascript
vue 移动端注入骨架屏的配置方法
Jun 25 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
destoon二次开发入门示例
2014/06/20 PHP
php绘制一个矩形的方法
2015/01/24 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
简单谈谈Python流程控制语句
2016/12/04 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
软件测试企业面试试卷
2016/07/13 面试题
大学四年规划书范文
2013/12/27 职场文书
骨干教师考核方案
2014/05/09 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
保密工作整改报告
2014/11/06 职场文书
教师年度考核个人总结
2015/02/12 职场文书
《鲸》教学反思
2016/02/23 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android