作者knives ()
看板Ajax
標題[問題] Ajax callback問題
時間Sat Mar 31 05:52:12 2012
我有一個function loadFile(url)
會回傳遠端文件的dom
function loadFile (sURL) {
var oXHR = new XMLHttpRequest();
oXHR.open("GET", sURL, true);
oXHR.onreadystatechange = function (oEvent) {
if (oXHR.readyState === 4) {
if (oXHR.status === 200) {
var doc;
try {
doc = new DOMParser().parseFromString(oXHR.responseText,
'application/xhtml+xml');
} catch (e) {
doc = document.implementation.createHTMLDocument ?
document.implementation.createHTMLDocument('apfc') :
document.implementation.createDocument(null, 'html', null);
// 以下略
}
return doc;
} else {
return null;
div.innerHTML = "";
console.log("Error", oXHR.statusText);
}
}
};
oXHR.send(null);
return null;
}
然後我在主程式的部份是用下面的方法去操作loadFile
var urls = new Array(); //用來存放要透過Ajax存取的網址
var arr2 = new Array(); //用來存放loadFile回傳的dom
for(i=0;i<urls.length;i++)
{
var doc = loadFile(urls[i]);
arr2.push(doc);
}
//再統一處理arr2裡面的東西
parseDom(arr2);
問題來了,因為同步問題,導致在那個loadFile 把所有的資料抓完之前
導致arr2.push(doc);
然後parseDOM也會出現問題
請問有什麼辦法可以讓loadFile完全正確跑完再執行主程式下面的動作嗎
謝謝回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 113.61.217.46
1F:→ local9433:將oXHR.open("GET", sURL, true);的第三個參數改false 03/31 08:19