转载请注明来源:ajax的xmlHttpRequest对象
XMLHttpRequest对象是ajax的核心,它有许多属性,方法和事件以便于脚本的处理和控制http的请求响应。如果你一直在使用原生的javascript做开发,那么在使用ajax的过程中,这个对象你需要非常了解,假使你用jquery之类的封装框架的话,那么多对它有一份了解,也能加深你对ajax的理解。
下面是它的一些属性的介绍:
1.readState属性:当xmlHttpRequest对象被创建后,这个属性,会告诉你,核心对象被创建后,是处于何种状态,是否可以访问或者处理,readState可以等于0,1,2,3,4;分别表示,0:已创建对象,但未初始化(如:int i;),1:已调用对象的open()方法,准备发送请求,2:已调用send()方法去请求,但是未得到响应,3:正在响应 ,4:完成响应,完成httpResponse响应的接收。
2.responseText属性:包含了客户端接收到的来自http响应的文本内容。当readState为0,或1或2时,该属性是一个空字符串,当为3时,是部分已接收到的字符串,当为4时,该属性为完整的响应信息。
3.responseXml属性:只有当readyState=4且响应头部的Content-Type的类型指定为XML(text/xml或者application/xml)时,该属性的值才为一个xml文档,否则为null,假使回传的xml格式不良或者未完成响应回传,该属性值也为null。它被用来描述xmlHttpRequest对象解析xml文档后的属性。
4.status属性:标记了http状态代码。只有在readyState=3或者4时,这个属性才能进行访问,否则获取该属性时,将引发异常。
5.statusText属性:标记了http状态代码的文本。只有在readyState=3或者4时,这个属性才能进行访问,否则获取该属性时,将引发异常。
下面是它的一个事件介绍:onreadystatechange事件
每当readyState的属性发生改变,就会触发该事件, 为ajax请求中使用最为频繁的核心事件。
下面是一些方法的介绍:
1.open():xmlHttpRequest对象通过调用open(method,uri,async,username,password)方法,进行初始化工作。调用该方法后,返回一个可以进行发送(send()方法)的对象。method为必填参数,按照http规范,可以为GET,POST,PUT,DELETE和HEAD;uri用于指定xmlHttpRequest对象请求的服务器地址,可以为相对路径或者绝对路径,最终都将解析为绝对路径;async用于指定是否异步,默认为true;如果服务器需要验证访问用户,那么username和password的这两个参数即可以使用到。
2.send():send()方法将open()方法中的参数进行请求发送,即它只能在open()调用之后,才能调用,即readState=1之后才能调用send(),在send()接受到响应信息之前,readyState=2,一旦send()接受到响应信息,readyState=3,直到最后接受完成,readyState=4。send方法使用也贵可选的参数,该参数可以包含可变类型的数据。对于大。多数的其它的数据类型,在调用send()之前,应该使用setRequestHeader()设置Content-Type 。一般使用send(null)显示调用该方法,假使send(data)中的data类型是DOMString,数据被编辑为utf-8,如果是Document,则由
data.xmlEncoding指定的编码串行化该数据。
3.about():可以暂停一个httpRequest的请求发送或者接收,并且将xmlHttpRequest对象设置为初始化状态。
4.setRequestHeader():设置请求的头部信息,当readyState=1时,可以在调用open()后调用它,否则会得到异常。
. 5.setResponseHeader():用于检索响应头信息,当readyState=4或者3时,才可以调用,否则得到一个空字符串。此外,getAllResponseHeader()用于获得所有的httpResponse的头部信息。
以上就是ajax的xmlHttpRequest对象的内容,更多相关内容请关注PHP中文网()!
在项目开发中,我们经常会对某张表进行增删改查。我们根据条件刷选表中的数据放到
效果图:
首先列出XML文件,方便代码参照
内容.xml
<?xml version="1.0" encoding="utf-8"?> <config> <Header ID="ID" class="class" class_name="class_name" year="year" school="school" count="count"> </Header> <rows ID="01" class="一五班" class_name="实验班" year="2013" school="三峡高级中学" count="30"> </rows> <rows ID="02" class="一六班" class_name="奥数班" year="2013" school="三峡高级中学" count="45"> </rows> <rows ID="03" class="一七班" class_name="阳光班" year="2013" school="三峡高级中学" count="60"> </rows> <rows ID="04" class="一八班" class_name="美术班" year="2013" school="三峡高级中学" count="75"> </rows> </config>一,核心代码:
1) 修改xml
/// <summary> /// 修改XML /// </summary> /// <param name="xmlName">XML文件名</param> /// <param name="ht">存放信息哈希表</param> /// <param name="ID">主键值</param> public void saveXML(string xmlName,Hashtable ht,string ID) { string fileName=HttpContext.Current.Request.PhysicalApplicationPath+"\\Xml\\"+xmlName+".xml";//xml的物理路径 XmlDocument xmlDoc=new XmlDocument (); xmlDoc.Load(fileName); XmlNode node = xmlDoc.SelectSingleNode("config/rows[@ID=" + ID + "]"); foreach (XmlNode node1 in node.Attributes) { if (ht.ContainsKey(node1.Name)&&node1.Name!="ID") { node1.Value = ht[node1.Name].ToString(); } } xmlDoc.Save(fileName); }