Ajax使用流程

来源:互联网 发布:android直播app源码 编辑:程序博客网 时间:2024/06/05 18:30

1:初始化XMLHttpRequest,这一步要考虑跨浏览器的问题。对于较早版本的IE来说,并不支持ActiveXObjice类,因此需要对浏览器进行判别。
2
:设置XMLHttpRequest对象的onReadyStateChange属性,指定服务器返回响应数据时要调用的回调函数,即指
定响应处理函数。
3
:调用XMLHttpRequest对象的open方法,创建http请求。
4
:调用XMLHttpRequest对象的setResouceHeader等方法,设置必要的http请求头信息。
5
:调用XMLHttpRequest对象的send方法,发送之前创建的http请求。
6
:根据XMLHttpRequest对象的open方法参数,决定等待或者不等待服务器回响应数据。如果服务器返回响应数据
,则将控制权交给之前设置回调函数。

示例:
function send_request()
        {
            //创建XMLHttpRequest;
//javascript是一个弱类型语言,因此变量http_request可以不声明,直接使用
            http_request = false;
            if(window.XMLHttpRequest)
            {
                // 不支持Window。XMLHttpRequest对象,即是非IE浏览器
                http_request = new XMLHttpRequest(); //实例化一个对象
               
            }
            else if(window.ActiveXObject)
            {
                //IE浏览器
                try
                {
                    http_request = new ActiveXObject("Msxml2.XMLHTTP");//较新版本的IE
                }catch(e)
                {
                    try
                    {
                        http_request = new ActiveXOBject("Microsoft.XMLHTTP");//旧版本IE
                    }catch(e)
                    {
                       
                        window.alert(e.description);
                    }                    
                }
            }
            else
            {
                window.alert("不能创建 XMLHttpRequest对象,无法应用Ajax");
                return false;
            }
            //指定回调函数
                 http_request.onreadystatechange = addAdmin; //相应服务器的异步请求
                  //创建HTTP请求
                 http_request.open("get","Handler.ashx?flag=addAdmin&userName="+document.getElementById("txtUserName").value,true);
                 //Handler.ashx是事件处理函数,注意值的传递方式。        
            //发送上面创建的HTTP请求
            http_request.send(null); 
        }
        function addAdmin()
        { 
            if(http_request.readyState == 4)//发送成功
            {
                if(http_request.status == 200)//返回状态成功
                {
                    //正式处理有信息
                    if(http_request.responseText == "用户名已经被注册")
                    {
                        //隐藏提交按扭
                        document.getElementById("btnCommit").style.display ="none"//javascript对于文档类的取出方法,都是docement.getElementById(“objectID“)
                    }
                    else
                    {
                        document.getElementById("btnCommit").style.display="";
                    }
                  
                    document.getElementById("lblShow").innerText=http_request.responseText;
                }
            }
        }

 

原创粉丝点击