Ajax原理回顾

来源:互联网 发布:时代大数据 编辑:程序博客网 时间:2024/06/15 15:32

       Ajax学名叫异步Javascript和Xml,核心对象是Javascript的XmlHttpRequest,XmlHttpRequest对象可以向服务器提交用户信息,并获得处理响应和返回处理结果页面。通过这个对象,Javascript可以在不重载这个页面的情况下实现与服务器交换数据。这样AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。另外Ajax不是一个单一的技术,是多种技术的综合,包含XML、XHTML、DOM、CSS、XSLT、XmlHttpRequest等技术,XHTML+CSS用户网页的显示,调用DOM可以动态的对网页进行交互,XSLT+XML用于数据的传输和交换,XmlHttpRequest用于异步数据的提交、检索等。

XmlHttpRequest对象的主要属性如下。

    onreadystatechange表示每次状态发生改变时触发的处理函数;

    responseText表示从服务器返回的字符串形式;

    responseXML表示从服务器返回的打包的xml数据信息对象;

    status表示从服务器返回的数字状态,比如404表示未找到,200表示已就绪;

    status Text表示伴随状态码的状态信息;

readyState表示对象状态值:

    0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)

    1 (初始化) 对象已建立,尚未调用send方法

    2 (发送数据) send方法已调用,但是当前的状态及http头未知

    3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,

    4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据

 

function CreateXmlHttp() {

    //非IE浏览器创建XmlHttpRequest对象
    if (window.XmlHttpRequest) {
        xmlhttp = new XmlHttpRequest();
    }

    //IE浏览器创建XmlHttpRequest对象
    if (window.ActiveXObject) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
            try {
                xmlhttp = new ActiveXObject("msxml2.XMLHTTP");
            }
            catch (ex) { }
        }
    }
}

function Ustbwuyi() {

    var data = document.getElementById("username").value;
    CreateXmlHttp();
    if (!xmlhttp) {
        alert("创建xmlhttp对象异常!");
        return false;
    }

    xmlhttp.open("POST", url, false);

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            document.getElementById("user1").innerHTML = "数据正在加载...";
            if (xmlhttp.status == 200) {
                document.write(xmlhttp.responseText);
            }
        }
    }
    xmlhttp.send();
}

 

此文感谢Eric Sun的Ajax原理,有部分参阅,他的博客地址:http://www.cnblogs.com/mingmingruyuedlut/archive/2011/10/18/2216553.html
原创粉丝点击