Ajax
1、Ajax (Asynchronous JavaScript And XML)
Ajax不仅仅包含JavaScript和XML两项内容,还包括CSS样式表、XMLHttpRequest数据交换对象和DOM文档对象
JavaScript
Ajax的主要开发语言
DOM文档对象
包含HTML DOM 和 XML DOM
CSS样式表
用户界面的样式可以通过CSS定义或修改
XMLHttpRequest数据交换对象
允许以异步的方式从服务端获取数据以及想服务器端发送数据
2、
1 function createXMLHttpRequest() 2 { 3 if(window.ActiveXObject) 4 { 5 //IE 6 return new ActiveXObject("Microsoft.XMLHTTP"); 7 } 8 else if(window.XMLHttpRequest)//not IE 9 { 10 return new XMLHttpRequest(); 11 } 12 } 13 14 var xhr; 15 function userExist(loginId) 16 { 17 if(loginId != "") 18 { 19 var url = ""; 20 xhr = createXMLHttpRequest(); 21 xhr.onreadystatechage = readydo; 22 xhr.open("GET",url,true); 23 xhr.send(null); 24 } 25 } 26 27 function readyDo() 28 { 29 if(xhr.readyState == 4 && xhr.status == 200) 30 { 31 var result = xhr.responseText; 32 if(result == "true") 33 {/*返回结果处理*/} 34 } 35 }
3、XMLHttpRequest状态属性
readyState | 0 | 未初始化,即对象已经建立,尚未调用open()方法 |
1 | 初始化,即对象已经建立,尚未调用send()方法 | |
2 | 发送数据,即send()方法已经调用,当前状态和HTTP头未知 | |
3 | 数据传送这,即已经接收部分数据,但数据不全 | |
4 | 数据接收完毕 | |
status | 200 | 正确返回 |
404 | 找不到访问对象 |
4、XMLHttpRequest返回数据类型
responseText:将返回的详细作为文本字符串
responseXML:将返回消息视为XML文档,在服务器响应消息这含有XML数据时使用
responseStream:将返回消息视为Stream
5、防止缓存
在服务器端输出时,添加Response.Cache.SetNoStore();
在客户端发出请求之前给XMLHttpRequest添加属性,XMLHttpRequest.setRequestHeader("If_Modified-Since","0");
6、服务器断输出XML格式数据
1 XmlSerializer serializer = new XmlSerializer(instanceName.GetType); 2 XmlWriter writer = new XmlTextWriter(context.Response.OutputStream,Encoding.UTF8); 3 serializer.Serialize(writer,instanceName);
7、XMLSerializer类负责将对象序列化到XML文档和从XML文档中反序列化对象
XMLWriter是一个抽象基类,提供只进、只写和非缓存方式生成XML流
8、使用XMLDocument对象
创建new ActiveXObject("Microsoft.XMLDOM");
查找节点
getElementByTagName()方法:用来获取指定结点名的节点对象集合,参数为节点名称字符串
selectStringNode()方法:用来获取符合条件的单个节点对象,它的参数为XPath表达式
selectNode()方法:用来获取符合条件的节点对象集合,它的参数同样为XPath表达式
访问节点对象的信息
getAttribute()方法:通过它可以获取节点属性值,它的参数为节点属性名称
text属性:通过它可以获取节点内部的文本
childNodes属性:通过它可以获取当前节点的子节点对象集合
firstChild属性:通过它可以获取当前节点对象的第一个子节点对象
lastChild属性:通过它可以获取当前节点对象的最后一个子节点对象
parentChild属性:通过它可以获取当前节点对象的父节点