所以我在嘗試重用XMLHttp
請求對象時遇到了問題。我正在嘗試將AJAX整合到網站中!XJAX重用XMLHttp對象
見下面我的代碼:
var XMLHttp = createXMLHttpRequestObject();
function createXMLHttpRequestObject() {
var xmlHTTP;
//First to deal with Internet Explorer >:(
if (window.ActiveXObject){
try {
xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
xmlHTTP = false;
}
} else {
try {
xmlHTTP = new XMLHttpRequest();
}
catch (e) {
xmlHTTP = false;
}
}
if (!xmlHTTP)
alert("Oops! Someone just unplugged the internet!");
else
return xmlHTTP;
}// XMLHttpRequest
function getAboutMe() {
if (XMLHttp.readyState == 0 || XMLHttp.readyState == 4) {
XMLHttp.open("GET", "http://repairiphonesuk.com/rachael/AJAX/getAboutMe.php", true);
XMLHttp.onreadystatechange = handleServerResponse('AboutMe');
XMLHttp.send();
} else {
setTimeout(getAboutMe(), 1000);
alert("no");
}
}
function getHome() {
if (XMLHttp.readyState == 0 || XMLHttp.readyState == 4) {
XMLHttp.open("GET", "http://repairiphonesuk.com/rachael/AJAX/getHome.php", true);
XMLHttp.onreadystatechange = handleServerResponse('home');
XMLHttp.send();
} else {
setTimeout(getHome(), 1000);
alert("no");
}
}
function handleServerResponse(from) {
if (XMLHttp.readyState == 4 && XMLHttp.status == 200) {
document.getElementById("displayContent").innerHTML = XMLHttp.responseText;
if (from === 'home') {
document.getElementById('displayContent').style.backgroundColor=transparent;
}
} else if (XMLHttp.status = 404) {
}
}
當取出getHome()
功能和參數,它的工作原理手柄的要求!我錯過了明顯的東西嗎?
你在這裏有內存衝突potensial,我猜你只是通過調用一個接一個來設置這些關閉,但如果你服務器滯後或類似這樣的事情,那麼你冒着時間移動的風險,他們試圖同時使用相同的變量,這是一個很大的不,不,你可以做到這一點,如果你創建它們作爲單獨的變量範圍,但我仍然不確定爲什麼你試圖重複使用相同的可用瀏覽器內存清理程序比你想象的要好得多,並且修改相同的變量將與你爲每個 –
使用不同的變量完全相同哦,讓你的代碼更加容易混淆,有一種更好的方式來獲得每個人都可以理解的通用AJAX調用 它位於此鏈接上 http://en.wikipedia.org/wiki/Xmlhttprequest在標題爲Internet Explorer 5, 5.5和6' –