良いプログラマ共有フロントエンドにWebフロントエンドJavaScriptのチュートリアルでは、Ajaxのパッケージを行使する

グッドウェブプログラマ遠位共有遠位JavaScriptのチュートリアルAjaxはパッケージ行使
---- AJAXをカプセル化し、実質的に持っている必要があります
関数アヤックス(URL、FN){
IF(window.XMLHttpRequest){
VAR =新しい新しいXHRのXMLHttpRequestを();
}他{
VAR = ActiveXObjectの新しい新XHR( "Microsoft.XMLHTTPが");
}

xhr.open("get",url,true);
xhr.send();

xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
        if(xhr.status == 200){
            var data = xhr.responseText;
            fn(data);
        }
    }
}}

アヤックス的完整封装
関数アヤックス(OBJ){
// OBJ - >タイプURLデータ成功
するvar strの= "";
(VAR obj.dataにおけるキー){用の
STR + =キー+ "=" + obj.data [キー] + "&"。
}
// STR = str.substring(0、str.length-1)。
STR = str.replace(/&$ /、 "");

if(window.XMLHttpRequest){
    var xhr = new XMLHttpRequest();
}else{
    var xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

if(obj.type.toUpperCase()=="GET"){
    if(obj.data){
        var url = obj.url + "?" + str;
    }else{
        var url = obj.url;
    }

    xhr.open("get",url,true);
    xhr.send();
}
if(obj.type.toUpperCase()=="POST"){
    xhr.open("post",obj.url,true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.send(str);
}

xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
        if(xhr.status == 200){
            var data = xhr.responseText;
            obj.success(data);
        }
    }
}

おすすめ

転載: blog.51cto.com/14573321/2454202