Ajax基础

项目也做了,现在来整理一下基础的知识吧,这样还可以温故而知新呢!
下面是一些关于ASP.NET_Ajax的一些基础知识


所有Web编程,无论服务器端技术是什么都逃脱不了HTTP
考虑现在风行的Ajax技术,那么我们可以说服务器采用什么技术以显得不那么重要,当然Microsoft一如既往的为我们提供了方便.
HTTP分两部份:请求和响应
HTTP请求格式如下:
<request-line>   //请求行
<headers>        //头部信息
<blank line>     //空行
[<request-body>] //请求主体

创建XHR对象:
IE中:var oXHR = new ActiveXObject(“Microsoft.XMLHttp”);
其它:var oXmlHttp = new XMLHttpRequest();
//通用的XHR创建
function createXMLHttp() {

    if (typeof XMLHttpRequest != "undefined") {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
      var aVersions = [ "MSXML2.XMLHttp.5.0",
        "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
        "MSXML2.XMLHttp","Microsoft.XMLHttp"
      ];

      for (var i = 0; i < aVersions.length; i++) {
        try {
            var oXmlHttp = new ActiveXObject(aVersions[i]);
            return oXmlHttp;
        } catch (oError) {
            //Do nothing
        }
      }
    }
    throw new Error("XMLHttp object could be created.");
}

使用zXML JS库帮助创建
XHR的open方法的三个参数:
Request Type: 请求类型 GET or POST URL: A string indicating
URL :说明发送请求的URL
Async: 说明是否为异步模式布尔值
var oXmlHttp = zXmlHttp.createRequest();
oXmlHttp.open("get", "info.txt", true);
XHR对象的readyState属性
0 (Uninitialized): 对象已创建但还没有调用open()方法
1 (Loading): open() 方法已调用但,请求还没有发送
2 (Loaded): 请求已发送
3 (Interactive). 已经收到部分响应
4 (Complete): 所有数据已收到,连接已经关闭
每当readyState 发生变化时就激发XHR对象的onreadystatechange 最后发送:oXmlHttp.send(null);

Ajax模式
通信控制模式
上传或下载时你可能选择部分上传或下载问题是怎样选择最佳时机
预先获取(predivtive fetch):尽量预测用户的下一步动作
Demo:Communication Control Patterns\Predictive Fetch
提交了流:表单增量验证示例,字段增量验证示例
Communication Control Patterns\Submission Throttling



posted @ 2009-10-14 22:47  flora_asp.net  阅读(212)  评论(0编辑  收藏  举报