一个AJAX客户端连接框架(自创)

        一个非常小的AJAX连接框架,连名字都没有,就使用其文件名作为框架名吧--request.js
这样作只不过是未了重用而已。下面是其代码:

    var http_request = false;
    
//连接初始化
    function init_request(){
        http_request 
= false;
        
//构建XMLHttpRequest实例
        if(window.XMLHttpRequest) //Mozilla 浏览器
            http_request = new XMLHttpRequest();
            
if (http_request.overrideMimeType) {//设置其请求头
                http_request.overrideMimeType("text/xml");
            }

        }

        
else if (window.ActiveXObject) // IE 浏览器
            try {
                http_request 
= new ActiveXObject("Msxml2.XMLHTTP");
            }
 catch (e) {
                
try {
                    http_request 
= new ActiveXObject("Microsoft.XMLHTTP");
                }
 catch (e) {}
            }

        }

        
if (!http_request) // 构建实例失败
            window.alert("构建XMLHttpRequest失败!");
            
return false;
        }
    
    }

    
    
/*
        GET方式进行请求数据
        url:请求连接地址
        使用方法:你必须手写 pageChange( http_request.responseText )函数
    
*/

    
function get_request( url ){
        init_request();
        http_request.onreadystatechange 
= processRequest;
        http_request.open(
"GET", url, true);
        http_request.send(
null);
    }

    
    
/*
        GET方式进行请求数据
        url:请求连接地址
        type:设置请求的数据的格式:text或者xml
        使用方法:你必须手写 pageChange( http_request.responseText )函数
    
*/

    
function get_request( url, type ){
        init_request();
        
if( type == "text" )
                http_request.onreadystatechange 
= processRequest;
        
else if( type == "xml" )
            http_request.onreadystatechange 
= processXmlRequest;
        http_request.open(
"GET", url, true);
        http_request.send(
null);
    }

    
    
/*
        GET方式进行请求数据
        url:请求连接地址    
        myProcess:你自己定义的事件处理函数    
        使用方法:你必须手写事件处理函数- myProcess,类似于processRequest函数和processXmlRequest函数
    
*/

    
function get_request2( url, myProcess ){
        init_request();        
        http_request.onreadystatechange 
= myProcess;
        http_request.open(
"GET", url, true);
        http_request.send(
null);
    }

    
    
/*
        POST方式发送数据
        url:请求连接地址
        sinfo:要发送的数据值
        使用方法:你必须手写 pageChange( http_request.responseText )函数
    
*/

    
function post_request( url, sinfo ) {
        
        init_request();
        http_request.onreadystatechange 
= processRequest;

        http_request.open(
"POST", url, true);
        http_request.setRequestHeader(
"Content-Length",sinfo.length);    
        http_request.setRequestHeader(
"Content-Type","application/x-www-form-urlencoded");
        http_request.send(sinfo);
    }

    
    
/*
        POST方式发送数据
        url:请求连接地址
        sinfo:要发送的数据值
        type:设置返回数据的格式:text或者XML
        使用方法:你必须手写 pageChange( http_request.responseText )函数
    
*/

    
function post_request( url, sinfo, type ) {
        
        init_request();
        
if( type == "text" )
                http_request.onreadystatechange 
= processRequest;
        
else if( type == "xml" )
                http_request.onreadystatechange 
= processXmlRequest;
        http_request.open(
"POST", url, true);
        http_request.setRequestHeader(
"Content-Length",sinfo.length);    
        http_request.setRequestHeader(
"Content-Type","application/x-www-form-urlencoded");
        http_request.send(sinfo);
    }

    
    
/*
        POST方式发送数据
        url:请求连接地址
        sinfo:要发送的数据值
        myProcess:自己定义的事件处理函数
        使用方法:你必须手写事件处理函数- myProcess,类似于processRequest函数和processXmlRequest函数
    
*/

    
function post_request2( url, sinfo, myProcess ) {
        
        init_request();
        http_request.onreadystatechange 
= myProcess;

        http_request.open(
"POST", url, true);
        http_request.setRequestHeader(
"Content-Length",sinfo.length);    
        http_request.setRequestHeader(
"Content-Type","application/x-www-form-urlencoded");
        http_request.send(sinfo);
    }

    
     
/*
        处理text数据
        事件处理函数,选择使用get_request等,这里必须自己手写pageChange函数
    
*/

    
function processRequest() {
        
if (http_request.readyState == 4{
            
if (http_request.status == 200
               pageChange( http_request.responseText );
            }
 else 
                alert(
"connect the server wrong!");
            }

        }

    }

    
    
/*
        处理XML数据
        事件处理函数,选择使用get_request等,这里必须自己手写pageChange函数
    
*/

    
function processXmlRequest() {
        
if (http_request.readyState == 4{
            
if (http_request.status == 200{
               pageChange( http_request.responseXml );
            }
 else {
                alert(
"connect the server wrong!");
            }

        }

    }
  

        其测试用例,这里不再给出,懒人 : ))link

 

posted on 2006-03-22 16:53  yongboy  阅读(890)  评论(0编辑  收藏  举报

导航