我正在嘗試創建一個投資組合站點,其中我的組件位於XML文件中。我想將XML DOM存儲在一個JavaScript變量中,這樣我就可以訪問它,而不必每次用戶單擊加載一個新的部件時都對服務器進行調用。jQuery緩存XML
現在我有:
$(document).ready(function() {
xml = getXML();
});
function getXML() {
var data = $.ajax({
url: '_lib/xml/portfolio.xml',
dataType: 'xml',
success: function(data) { return data; }
});
return data;
}
雖然使用Firebug,如果我「的console.log(數據)」,在之後的匿名函數「的成功:」「文件」,它記錄一個如果我在「$(document).ready ...」中使用「console.log(xml)」,它會記錄一個XMLHTTPRequest,並且我無法訪問XML文檔的DOM。
我試過返回「data.responseXML」,但沒有做任何事情。我也嘗試過在「成功」之後調用一個非匿名函數,並在那裏記錄XML,它仍然以「Document」的形式出現,這正是我所需要的。
似乎問題發生在我返回XML時 - 它從「Document」更改爲「XMLHTTPRequest」。
任何幫助將不勝感激。謝謝!
太棒了,NawaMan - 非常感謝!也許「$ .ajax」返回整個XML對象,「success:」只返回responseXML?你知道爲什麼異步需要是錯誤的嗎? – salmonete 2009-10-17 16:12:53
我真的不知道退貨情況:p。 'async'需要爲'false',以便函數'getXML()'等待ajax執行成功。 (首先分配XML)。 :d – NawaMan 2009-10-17 16:36:28