对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 Event学习第十章 一些可替换的事件对
Feb 10 Javascript
javascript 节点排序 2
Jan 31 Javascript
使用javascript为网页增加夜间模式
Jan 26 Javascript
jquery代码实现简单的随机图片瀑布流效果
Apr 20 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
关于express与koa的使用对比详解
Jan 25 Javascript
Vue页面骨架屏注入方法
May 13 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 Javascript
Javascript实现鼠标移入方向感知
Jun 24 Javascript
Element Tooltip 文字提示的使用示例
Jul 26 Javascript
JavaScript实现复选框全选和取消全选
Nov 20 Javascript
jQuery实现广告显示和隐藏动画
Jul 04 jQuery
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版(5)
2006/10/09 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
JavaScript 常用函数
2009/12/30 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
Python中使用中文的方法
2011/02/19 Python
Python实现批量转换文件编码的方法
2015/07/28 Python
Python内建模块struct实例详解
2018/02/02 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
Python数据正态性检验实现过程
2020/04/18 Python
jupyter 导入csv文件方式
2020/04/21 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
岗位说明书标准范本
2014/07/30 职场文书
消防宣传标语大全
2015/08/03 职场文书
电工实训心得体会
2016/01/14 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
Go遍历struct,map,slice的实现
2021/06/13 Golang
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android