作者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