[ js ] 讀取多個xml程式流程問題

看板Ajax作者 (wei)時間17年前 (2008/01/30 10:10), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
在寫一個java script需要讀取多個 xml 檔案,遇到一些問題,在下面程式碼中迴圈呼 叫 getsub() function,程式沒有等檔案讀取、處理完就執行了迴圈的動作了,就是 載入第n個檔案後,檔案讀取中還沒做 ondataavailable 事件發生後所指定要做的處理, 迴圈就呼叫load 第n+1個檔案,請問一下我該怎麼處理呢?謝謝 <OBJECT width=0 height=0 classid="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" id="xmldso"></OBJECT> <script> function fa(oxml) { var config = oxml.XMLDocument.selectSingleNode("config"); var node = config.selectSingleNode("background"); var scr = new fb(node); for (var i=0;i<config.childNodes.length;i++) { switch (config.childNodes[i].tagName) scr.addFc(config.childNodes[i]); break; default: break; } } retrun scr; } //-------- function fb(xmlnode) { this.Fc = Array(); if (xmlnode) { for (var i=0;xmlnode && i<xmlnode.attributes.length;i++) { switch (xmlnode.attributes[i].name) { case "left": this.left = xmlnode.attributes[i].text; break; default: break; } } } this.show = function() { for (var i=0;i<this.movies.length;i++) this.Fc[i].getsub(); alert(this.Fc.length); } this.addFc = function(node) { this.Fc[this.movies.length] = new fc(this.FC.length, node); } } //--------- function fc(id,xmlnode) { this.desc = null; this.list = null; for (var i=0;i<xmlnode.attributes.length;i++) { switch (xmlnode.attributes[i].name) { case "desc": this.desc = xmlnode.attributes[i].text; break; case "list": this.list = xmlnode.attributes[i].text; break; default: alert("Invalid attribute '" + xmlnode.attributes[i].name + "' at node '" + xmlnode.tagName + "'"); break; } } this.getsub = function() { var doc = xmldso.XMLDocument; doc.load(this.desc); doc.ondataavailable = function() {//裡面執行一些 parsing 的動作 } } } var screen; </script> <span id="xml_section" > <xml id="page" src="<?="$prefix$file"?>" onreadystatechange="if (this.readyState=='complete') { screen = fa( this); screen.show(); }" /xml> </span> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.218.111.206 ※ 編輯: weishiang 來自: 61.218.111.206 (01/30 14:03) ※ 編輯: weishiang 來自: 61.218.111.206 (01/30 14:38)
文章代碼(AID): #17dzoYmW (Ajax)
文章代碼(AID): #17dzoYmW (Ajax)