極めてシンプルなAjaxパッケージで、コールバックインタフェースとブラウザの互換性が優れています.


>>注意:後ろ(9階)のv 1をダウンロードしてください.1正規版.IE 7のNative XHRを優先する場合は、添付ファイルのbajaxを自分で考えてください.jsファイルのbajax_object関数を置き換えます(修正したコードは9階のページにあります--添付ファイルを更新したくありません).
以前は51 dituと動易の統合を書いていましたが、今はAjaxに改善する準備ができています.Ajaxは昔から知っていましたが、実際に使ったことはありません.
ネット上でGoogleを見て、Sajaxを見ました.php……
簡単にしたほうがいいです.自分で小さなパッケージを書いて、ブラウザの互換性をテストするのは悪くありません.コールバック関数のインタフェースは友好的です.
また、同じXMLHttpRequesオブジェクトに対して複数のopen、sendなどの操作を行った場合、IEにCacheの問題があり、Firefoxは正常であることが分かった.しかし、毎回newを1つずつやり直すのであれば、IEはよくサポートされています(Firefoxはもちろん).
このライブラリ(ユーザ向けに実際には1つの関数)を使用すると、XMLHttpRequestの詳細を考慮する必要はありません.通常のJs関数を呼び出して定義するのと同じです.
使用方法:

<script language="javascript" src="bajax.js"></script>
<script language="javascript">
function callback(req, id) {
    if(req.readyState == 4 && req.status == 200) {
        if(id)document.getElementById(id).innerHTML = req.responseText;
        //eval(req.responseText);
    }
}
</script>
<div id="someid"></div>
<div onClick="bajax_send('http://xxx.net/yourscript.php?xxx', callback, 'someid')">     !</div>

ソースコードの内容

var bajax_debug_enable = false;

//    :
//(URL,    ,            ,  ,POST  ,    )
function bajax_send(url, callback, fdata, method, sdata, asyn)
{
    fdata = (fdata === undefined)? null: fdata;
    method = method || "GET";
    sdata = (sdata === undefined)? null: sdata;
    asyn = (asyn === undefined)? true: asyn;

    var X = new bajax_object();
    if(asyn)
        X.onreadystatechange = function(){ callback(X, fdata); };
    X.open(method, url, asyn);

    if(bajax_debug_enable)
        bajax_debugger(callback);
    X.send(sdata);

    if(asyn) return X;
    else callback(X, fdata);
}

//   IE      (From Sajax.php v0.12)
function bajax_object()
{
    var A;
    var _msxmlhttp = new Array(
        'Msxml2.XMLHTTP.5.0',
        'Msxml2.XMLHTTP.4.0',
        'Msxml2.XMLHTTP.3.0',
        'Msxml2.XMLHTTP',
        'Microsoft.XMLHTTP');
    for(var i = 0; i < _msxmlhttp.length; i++) {
        try {
            if(A = new ActiveXObject(_msxmlhttp[i])) break;
        } catch (e) {
            A = null;
        }
    }
    if(!A && typeof XMLHttpRequest != "undefined")
        A = new XMLHttpRequest();
    if(!A)
        alert("Could not create connection object.");

    return A;
}

// Debug information...
function bajax_debugger(func)
{
    var S = func.toString();
    alert('[Running] ' + S.slice(9, S.indexOf(')', 10)) + ')');
}