侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

原生态ajax写法 转载

2024-05-15 星期三 / 0 评论 / 0 点赞 / 87 阅读 / 14854 字

转载于:http://my.xueh5.com/mattsi/detail-3622.html 这是我见过写的最好的原生态写法,里面注释清晰,思路清晰,希望对大家有用 function zyajax(

转载于:http://my.xueh5.com/mattsi/detail-3622.html

这是我见过写的最好的原生态写法,里面注释清晰,思路清晰,希望对大家有用

function zyajax(){}zyajax.version="1.1";zyajax.async=true;zyajax.httpMethod="POST";zyajax.responseType="xml";zyajax.url="";zyajax.debug=false;zyajax.getXmlHttpObj = function(){    if(typeof XMLHttpRequest != "undefined")    {    return new XMLHttpRequest();    }    else if(window.ActiveXObject)    {    var aVersion =["MSXML2.XMLHttp.5.0",    "MSXML2.XMLHttp.4.0",    "MSXML2.XMLHttp.3.0",    "MSXML2.XMLHttp",    "Microsoft.XMLHttp"];    for(var i=0;i<aVersion.length;i++)    {    try    {    var oXmlHttp = new ActiveXObject(aVersion[i]);    return oXmlHttp;    }    catch(e)    {    }    }    }    throw new Error("XMLHttp object can't be create!");};////  使用XMLHTTP和远程服务器通信。////  参数名称        必须    类型        取值范围            描述//-------------------------------------------------------------------------------------------//async是      boolean     true/false          是否使用异步方式//httpMethod是      string      "post"/"get"        http方法//responseType否      string      "text"/"xml"        返回数据的类型//url是      string                          接收请求的URL地址//callback否      function                        异步方式操作完成时执行的回调函数//postData否      string                          post方式时发送的数据////  注:非必须的参数,如不被传递时使用null代替。//zyajax.transmit = function(async, httpMethod, responseType, url, callback, postData)//------------------------//使用XMLHTTP和远程服务器通信。////  参数名称        必须    类型        取值范围            描述//-------------------------------------------------------------------------------------------//qwzyCommond是      string      PHP端执行函数名          //postData是      string      参数       JSON格式:{parameters:["param1","param2","param3"]}//async否      boolean     true/false        是否使用异步方式//callback是      string      回调函数                    //------------------------zyajax.call = function(qwzyCommond,postData,async,callback){    var httpMethod=zyajax.httpMethod;    var responseType=zyajax.responseType;    var url=zyajax.url;    var params="";    objParams=postData["parameters"];    if(objParams.length!=0){    for(var a=0;a<objParams.length;a++){    params+=objParams[a]+"~*zyzajax*~";    }    params=params.substring(0,params.length-11)    }    params="sbmtData="+encodeURIComponent(params)+"&qwzyCommond="+qwzyCommond;        httpMethod = httpMethod.toLowerCase();        if(responseType != null) responseType = responseType.toLowerCase();        var xmlhttp = this.getXmlHttpObj();        url=url+"?"+params;    xmlhttp.open(httpMethod, url, async);    if(!async && httpMethod == "post")        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    if(async)    {    xmlhttp.onreadystatechange = function()    {    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)    {        try        {            if(typeof(callback) == "function")            {                switch(responseType)                {                case "xml":                    var cmdXML=xmlhttp.responseXML;                    var elements = cmdXML.getElementsByTagName("cmd");                    var xmlLen=elements.length;                    var returnValue="";                    for(var a=0;a<xmlLen;a++){                    if(elements[a].getAttribute("cmd")=="txt"){                    returnValue=zyajax.getContent(elements[a]);                    }else{                    eval(zyajax.getContent(elements[a]));                    }                    }                    callback(returnValue);                break;                    case "json":                    var jsonData=eval("("+xmlhttp.responseText+")");                    var jsonLen=jsonData.length;                    var returnValue="";                    for(var a=0;a<jsonLen;a++){                    if(jsonData[a].cmd=="txt"){                    returnValue=jsonData[a].code;                    }                    else{                    eval(jsonData[a].code);                    }                    }                    callback(returnValue);                    break;            default:                callback(null);                }                if(zyajax.debug){                    alert("请求/响应函数:"+qwzyCommond);                    alert("服务端返回内容:/n"+xmlhttp.responseText);                    }            }    }    finally    {        xmlhttp = null;    }    }    }    xmlhttp.send(params);    }    else    {    var returnValue="";    xmlhttp.send(params);    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)    {        switch(responseType)    {        case "xml":                    var cmdXML=xmlhttp.responseXML;                    var elements = cmdXML.getElementsByTagName("cmd");                    var xmlLen=elements.length;                                         for(var a=0;a<xmlLen;a++){                    if(elements[a].getAttribute("cmd")=="txt"){                    returnValue=zyajax.getContent(elements[a]);                    }else{                    eval(zyajax.getContent(elements[a]));                    }                    }                    return returnValue;                break;                    case "json":                var jsonData=eval("("+xmlhttp.responseText+")");                var jsonLen=jsonData.length;                var returnValue="";                for(var a=0;a<jsonLen;a++){                if(jsonData[a].cmd=="txt"){                returnValue=jsonData[a].code;                }                else{                eval(jsonData[a].code);                }                }                return returnValue;                break;        default:            return null;    }        if(zyajax.debug){            alert("请求/响应函数:"+qwzyCommond);            alert("服务端返回内容:/n"+xmlhttp.responseText);            }    }    else    {        return null;    }    }};//简洁zyajax请求zyajax.speedsmit=function (params,commond,callback){    var async=zyajax.async;    var httpMethod=zyajax.httpMethod;    var responseType=zyajax.responseType;    var url=zyajax.url;    var myMethod=zyajax.myMethod;    var params="sbmtData="+encodeURIComponent(params)+"&qwzyCommond="+commond;    var httpMethod = httpMethod.toLowerCase();        if(responseType != null) responseType = responseType.toLowerCase();        var xmlhttp = this.getXmlHttpObj();        url=url+"?"+params;    xmlhttp.open(httpMethod, url, async);    if(!async && httpMethod == "post")        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    if(async)    {    xmlhttp.onreadystatechange = function()    {    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)    {        try        {            if(typeof(callback) == "function")            {                switch(responseType)                {                    case "xml":                                         var cmdXML=xmlhttp.responseXML;                                         var elements = cmdXML.getElementsByTagName("cmd");                    var xmlLen=elements.length;                    var returnValue="";                    for(var a=0;a<xmlLen;a++){                    if(elements[a].getAttribute("cmd")=="txt"){                    returnValue=zyajax.getContent(elements[a]);                    }else{                    eval(zyajax.getContent(elements[a]));                    }                    }                    callback(returnValue);                break;                    case "json":                    var jsonData=eval("("+xmlhttp.responseText+")");                    var jsonLen=jsonData.length;                    var returnValue="";                    for(var a=0;a<jsonLen;a++){                    if(jsonData[a].cmd=="txt"){                    returnValue=jsonData[a].code;                    }                    else{                    eval(jsonData[a].code);                    }                    }                    callback(returnValue);                    break;            default:                callback(null);                }                if(zyajax.debug){                    alert("请求/响应函数:"+commond);                    alert("服务端返回内容:/n"+xmlhttp.responseText);                    }            }    }    finally    {        xmlhttp = null;    }    }    }    xmlhttp.send(params);    }    else    {    var returnValue="";    xmlhttp.send(params);    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)    {        switch(responseType)    {        case "xml":                    var cmdXML=xmlhttp.responseXML;                    var elements = cmdXML.getElementsByTagName("cmd");                    var xmlLen=elements.length;                    for(var a=0;a<xmlLen;a++){                    if(jsonData[a].cmd=="txt"){                returnValue=jsonData[a].code;                }                else{                eval(jsonData[a].code);                }                    }                break;        case "json":                var jsonData=eval("("+xmlhttp.responseText+")");                var jsonLen=jsonData.length;                for(var a=0;a<jsonLen;a++){                if(jsonData[a].cmd=="txt"){                returnValue=jsonData[a].code;                }                else{                eval(jsonData[a].code);                }                }                return returnValue;                break;                                  default:            return null;    }        if(zyajax.debug){            alert("请求/响应函数:"+commond);            alert("服务端返回内容:/n"+xmlhttp.responseText);            }    }    else    {        return null;    }    }    return returnValue;};zyajax.request=function(){    var arguNum=arguments.length;    if(arguNum!=0){    var objParams=arguments[1]["parameters"];    var params="";    if(objParams.length!=0){    for(var a=0;a<objParams.length;a++){        params+=objParams[a]+"~*zyzajax*~";    }        params=params.substring(0,params.length-11);    }        return zyajax.speedsmit(params,arguments[0]["zyajaxfun"],zyajax.myMethod);    }    }    zyajax.getContent=function(domObj){    if(!-[1,]){    return domObj.text;    }else{    return domObj.textContent;    }}//通过同步GET方式获得指定服务端的数据//url 指定的服务端处理文件路径zyajax.getText = function(url){  var xmlhttp = this.getXmlHttpObj();  xmlhttp.open("GET", url, false);  xmlhttp.send(null);    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)    {    return xmlhttp.responseText;    }    else    {        return null;    }};//通过同步POST方式获得指定服务端的数据//url 指定的服务端处理文件路径//post 发送的数据zyajax.postText = function(url,postData){  var xmlhttp = this.getXmlHttpObj();  xmlhttp.open("POST", url, false);  xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  xmlhttp.send(postData);    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)    {    return xmlhttp.responseText;    }    else    {        return null;    }};//以异步GET方式获得指定服务端的数据//url 指定的服务端处理文件//callback 异步处理方法zyajax.asyncGetText = function(url,callback){    var xmlhttp = this.getXmlHttpObj();    xmlhttp.open("GET", url, true);    xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState == 4 && xmlhttp.status == 200){    try    {        if(typeof(callback) == "function")        {            callback(xmlhttp.responseText);        }}finally{    xmlhttp = null;}}}    xmlhttp.send(null);};//以异步Post方式获得指定服务端的数据//url 指定的服务端处理文件//callback 异步处理方法//post 发送的数据zyajax.asyncPostText = function(url,callback,postData){    var xmlhttp = this.getXmlHttpObj();    xmlhttp.open("POST", url, true);    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState == 4 && xmlhttp.status == 200){    try    {        if(typeof(callback) == "function")        {            callback(xmlhttp.responseText);        }}finally{    xmlhttp = null;}}}    xmlhttp.send(postData);};//通过同步GET方式获得指定服务端的数据//url 指定的服务端处理文件路径zyajax.getXml = function(url){  var xmlhttp = this.getXmlHttpObj();  xmlhttp.open("GET", url, false);  xmlhttp.send(null);    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)    {    return xmlhttp.responseXML;    }    else    {        return null;    }};//通过同步Post方式获得指定服务端的数据//url 指定的服务端处理文件路径//post 发送的数据zyajax.postXml = function(url,postData){  var xmlhttp = this.getXmlHttpObj();  xmlhttp.open("POST", url, false);  xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  xmlhttp.send(postData);    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)    {    return xmlhttp.responseXML;    }    else    {        return null;    }};//以异步GET方式获得指定服务端的数据//url 指定的服务端处理文件//callback 异步处理方法zyajax.asyncGetXml = function(url,callback){    var xmlhttp = this.getXmlHttpObj();    xmlhttp.open("GET", url, true);    xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState == 4 && xmlhttp.status == 200){    try    {        if(typeof(callback) == "function")        {            callback(xmlhttp.responseXML);        }        }        finally        {        xmlhttp = null;        }    }}    xmlhttp.send(null);};//以异步Post方式获得指定服务端的数据//url 指定的服务端处理文件//callback 异步处理方法zyajax.asyncPostXml = function(url,callback,postData){    var xmlhttp = this.getXmlHttpObj();    xmlhttp.open("POST", url, true);    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    xmlhttp.onreadystatechange = function()        {        if(xmlhttp.readyState == 4 && xmlhttp.status == 200)        {            try            {                if(typeof(callback) == "function")                {                    callback(xmlhttp.responseXML);                }        }        finally        {            xmlhttp = null;        }        }        }    xmlhttp.send(postData);};

 

广告 广告

评论区