Ajax

本文详细介绍Ajax的工作原理和技术组成,包括JavaScript、DOM、CSS及XMLHttpRequest的应用。同时讲解了XMLHttpRequest的状态属性、返回数据类型及如何防止缓存等实用技巧。

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状态属性

readyState0未初始化,即对象已经建立,尚未调用open()方法
 1初始化,即对象已经建立,尚未调用send()方法
 2发送数据,即send()方法已经调用,当前状态和HTTP头未知
 3数据传送这,即已经接收部分数据,但数据不全
 4数据接收完毕
status200正确返回
 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属性:通过它可以获取当前节点对象的父节点

转载于:https://www.cnblogs.com/changweihua/archive/2012/06/12/2545997.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值