function getData(p, cb) {
loadingImage();
p = p.replace("frame_", "");
if (window.XMLHttpRequest) {
AJAX = new XMLHttpRequest();
} else {
AJAX = new ActiveXObject("Microsoft.XMLHTTP");
}
if (AJAX) {
var __page = encodeURIComponent(p);
AJAX.open("GET", "page.php?page=" + __page, true);
AJAX.onreadystatechange = function(e) {
if (AJAX.readystate === 4) {
var __data = AJAX.responseText.match(/<data>[\s\S]*?<\/data>/gmi);
cb(data);
}
};
AJAX.send(null);
} else {
cb(null);
}
}
getData("home", function(loadedData) {
if (loadedData) {
document.getElementById("body").innerHTML = loadedData;
}
else {
document.getElementById("body").innerHTML = "Error";
}
});
.open
コールで使用async = true
。
バインドreadystatechange
へのEventHandler。 readystate
が4(LOADED)の場合、データを取得してコールバックに送信します。
AJAXがコールバックに失敗した場合は、null
またはfalse
でコールバックしてください。あなたのコールバックで
はloadedData
を取得し、それをレンダリングするか、データが存在しない場合はエラーをスローいずれか。
はなぜですか?...そして、どの方法が – John
_Asynchronous_ JAXを使用します。あなたは 'loadingImage'関数を呼び出している' onreadystatechange'イベントハンドラ – Raynos
を使用しますか? –