極めてシンプルなAjaxパッケージで、コールバックインタフェースとブラウザの互換性が優れています.
3009 ワード
>>注意:後ろ(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関数を呼び出して定義するのと同じです.
使用方法:
ソースコードの内容
以前は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)) + ')');
}