对xmlHttp对象方法和属性的理解
1 客户端可以通过xmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用文档对象模型(DOM)处理回应。
1.1 我的理解:
- 用户的每次操作,都会有数据产生。
- 通过DOM或者JS编写对数据进行封装,或者浏览器自身对http协议的一些数据进行封装。
- 通过xmlHttp对象的一些方法,传入数据参数,向http服务器发送请求。
- 返回结果通过DOM进行处理。
2 xmlHttp对象的成员。
2.1 属性
- onreadystatechange:当readyState属性值发生改变时,触发的事件处理句柄。
例子:xmlHttp.onreadystatechange = functionHandler;
function functionHandler() {
if(xmlHttp.readyState == 4) {
alert("当readyState状态为4时,弹出此窗口!!!");
}
}
//句柄只有方法名称,没有这对“()”括号。赋值时要注意理解。
- 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 方法
- open(Method, Url, Syn, User, Password);
创建一个新的xmlHttp对象时,实际上就是创建一个http请求。
此方法指定请求的方式(GET/POST/PUT/PROPFIND)、 URL、异步(默认情况为true)、验证信息。
采用异步方式(true)时,状态改变时会调用onreadystatechange属性指定的回调函数。
- send();
此方法的同步或异步方式取决于open方法中的Syn参数,如果Syn == false,此方法将会等待请求完成或者超时时才会返回,如果Syn == true,此方法将立即返回。
相关推荐
-
Ajax创建XMLHttp对象的完美兼容性代码
复制代码 代码如下: function creatajax(){ var ajax=null; if (window.XMLHttpRequest){ //对于Mozilla.Netscape.Safari等浏览器,创建XMLHttpRequest对象 ajax = new XMLHttpRequest(); if (ajax.overrideMimeType){ //如果服务器响应的header不是text/xml,可以调用其它方法修改该header ajax.overrideMimeType
-
javascript对XMLHttpRequest异步请求的面向对象封装
复制代码 代码如下: function CallBackObject() { this.XmlHttp = this.GetHttpObject(); } CallBackObject.prototype.GetHttpObject = function() //动态为CallBackObject的原型添加了GetHttpObject共有方法 { //第一步:创建XMLHttpRequest对象 //进行兼容性判断 var xmlhttp; /*@cc_on @if (@_jscript_ver
-
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
在数据发送一方,利用 javascript 的 escape 函数事先将所有中文转换成英文编码并保存(也可以用 ASP 等其它语言的函数实时转换输出). 在数据接收一方,利用 javascript 的 unescape 函数将所有英文编码还原. 由于 Ajax 不论任何编码都能正常传送英文,所以用这种方法可以轻松解决. -------------------------------------------------------------------------------- 用XMLHTTP
-
javascript XMLHttpRequest对象全面剖析
一. 引言 异步JavaScript与XML(AJAX)是一个专用术语,用于实现在客户端脚本与服务器之间的数据交互过程.这一技术的优点在于,它向开发者提供了一种从Web服务器检索数据而不必把用户当前正在观察的页面回馈给服务器.与现代浏览器的通过存取浏览器DOM结构的编程代码(JavaScript)动态地改变被显示内容的支持相配合,AJAX让开发者在浏览器端更新被显示的HTML内容而不必刷新页面.换句话说,AJAX可以使基于浏览器的应用程序更具交互性而且更类似传统型桌面应用程序. Google的G
-
对xmlHttp对象的理解
1 xmlHttp是一套在JavaScript脚本语言中通过Http协议传送或者接收XML及其他数据的API. (xmlHttp是一套API,通过Http协议进行数据的传送和接收.) 2 xmlHttp提供客户端同http服务器通讯的协议,客户端通过xmlHttp对象(MSXML2.XMLHTTP.3.0),向http服务器发送请求,使用DOM处理回应. 2.1 xmlHttp对象的创建方式区分IE浏览器和非IE浏览器: 例子:创建一个xmlHttp对象,并向服务器请求一个xml文档,返回文档后
-
Ajax xmlHttpRequest的status的值的含义
xmlHttpRequest对象的status代表当前http请求的状态,是一个长整型数据,现在介绍一下它的含义. http请求状态及其含义表 1xx - 信息提示 100 - 初始的请求已经接受,客户应当继续发送请求的其余部分.(HTTP 1.1新) 101 - 服务器将遵从客户的请求转换到另外一种协议.(HTTP 1.1新) 2xx - 成功 200 - OK 一切正常,对GET和POST请求的应答文档跟在后面. 201 - Created 服务器已经创建了文档,Location头给出了它的
-
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
如果我们在客户端频繁使用ajax技术,那么我们就不得不多次创建xmlhttp对象.当然,如您所知,我们可以改进创建的方式,比如使用全局变量来缓存一个实例(客户端的单例模式?!),对于同步方式的通信,这是很有效的,但是这样的方式对于异步通信会出现问题,因为没有了进程的堵塞,用户可能在上一次通信未完成时再次调用同一个xmlhttp实例,这样不等前一个调用的回调函数触发,前一次调用就被"覆盖"掉了(也就代表前一次调用失败).建立一个保持xmlhttp实例的池,好处显而易见,最明显的优点就是我
-
对xmlHttp对象方法和属性的理解
1 客户端可以通过xmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用文档对象模型(DOM)处理回应. 1.1 我的理解: 用户的每次操作,都会有数据产生. 通过DOM或者JS编写对数据进行封装,或者浏览器自身对http协议的一些数据进行封装. 通过xmlHttp对象的一些方法,传入数据参数,向http服务器发送请求. 返回结果通过DOM进行处理. 2 xmlHttp对象的成员. 2.1 属性 onreadystatechange:当readyState属
-
JavaScript常用对象的方法和属性小结
本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩的网页.在这一部分里,我们将介绍到如何使用与串对象有关的方法和属性. 1.串对象的length属性 串对象仅有一个属性length,这个属性值表示这个串所包括字符的相对数目.语法为: stringName.length 2.串对象的方法 JavaScript提供了多个串方法以帮助控制显示信息.串方法可以分为几个大类,如属性方
-
Three.js中网格对象MESH的属性与方法详解
前言 本文主要给大家介绍了关于Three.js网格对象MESH的属性与方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 创建一个网格需要一个几何体,以及一个或多个材质.当网格创建好之后,我们就可以将它添加到场景中并进行渲染.网格对象提供了几个属性和方法用于改变它在场景中的位置和显示效果. 如下: 还有一个属性就是visible属性,默认为true,如果设置为false,THREE.Mesh将不渲染到场景中. mesh对象的前三个属性position,rotation和scal
-
js基础之DOM中document对象的常用属性方法详解
-----引入 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1 document.anchors 返回对文档中所有 Anchor 对象的引用.还有document.links/document.forms/document.images等 2 document.URL 返回当前文档的url 3 document.title 返回当前文档的标题 4 do
-
全面了解python中的类,对象,方法,属性
python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征.它会汪汪叫,会摇尾巴等是它的行为. 我们在描述一个真实对象(物体)时包括两个方面: 它可以做什么(行为) 它是什么样的(属性或特征). 在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象
-
Ajax获取XMLHttp对象的方法
本文实例讲述了Ajax获取XMLHttp对象的方法.分享给大家供大家参考,具体如下: Ajax 中要用到XMLHttp对象,我见过各种获取该对象的写法,觉得该写法最优雅.首先考虑到了适合不同的浏览器:其次考虑到了优先加载次序,从高版本向低版本试探,最后若还没找到,则抛出异常. function FactoryXMLHttpRequest() { if(window.XMLHttpRequest) { return new XMLHttpRequest(); }else if(window.Act
-
JS实现给对象动态添加属性的方法
本文实例讲述了JS实现给对象动态添加属性的方法.分享给大家供大家参考,具体如下: 在工作用要用到给jd对象动态添加属性的要求,在网上找到了一种解决方式,实例如下: 1.demo var aa="maker"; var bb=123; var lists={}; eval("lists."+aa+"="+bb); eval('('+"lists."+aa+"="+bb+')'); console.log(li
-
PowerShell中Get-Date对象的常用属性和方法介绍
本文介绍PowerShell中使用Get-Date得到的日期对象的属性和方法,利用好这些对象和方法,可以极大的增强我们开发的灵活性. 使用Get-Date可以获取到一个时间对象,这个时间对象,可不是仅仅用来输出当前时间这么简单.我们来看看它的属性和方法吧,不看白不看. 要想看一个对象的成员(即对象的属性和方法),可以使用管道符,再加上Get-Member这个cmdlet.很方便滴! 复制代码 代码如下: PS C:\Users\zhanghong> Get-Date | Get-Member T
-
浅谈js内置对象Math的属性和方法(推荐)
属性: constructor 所建立对象的函数参考 prototype 能够为对象加入的属性和方法 E 欧拉常量,自然对数的底(约等于2.718) LN2 2的自然对数(约等于0.693) LN10 10的自然对数(约等于2.302) LOG2E 以2为底的e的对数.(约等于1.442) LOG10E 以10为底的e的对数(约等于0.434) PI ∏的值(约等于3.14159) SQRT1_2 1/2(0.5)的平方根(即l除以2的平方根,约等于o.707) SQRT2 2的平方根(约等于1
随机推荐
- web开发之对比时间大小的工具函数的实例详解
- bootstrap vue.js实现tab效果
- 解决FLASH需要点击激活的代码
- 浅谈servlet3异步原理与实践
- asp.net如何将DataSet转换成josn并输出
- VS2015自带LocalDB数据库用法详解
- ASP.NET性能优化之减少请求
- 将JSP在内存生成的图片显示到页面
- Ajax回退刷新页面问题的解决办法
- django模型中的字段和model名显示为中文小技巧分享
- jQuery+ajax中getJSON() 用法实例
- asp内置对象 ObjectContext 事务管理 详解
- 详解C语言中的ttyname()函数和isatty()函数的用法
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- Linux服务器编程之utime()函数修改文件存取时间
- 根据鼠标的位置动态的控制层的位置
- javascript 事件加载与预加载
- win2003 R2升级提示另一个应用程序要求重新启动的解决方法
- 函数式宏定义与普通函数的区别
- java selenium教程环境搭建基于Maven