我創建的網站具有在多個頁面上使用的信息。我設置它的方式是信息存儲在xml文件中。然後我使用AJAX加載xml文件,並在成功調用附加th的解析方法。將xml加載到div時的AJAX競態條件
似乎有一個競爭條件發生。在xml文件完成分析之前,頁面完成加載。如果我在解析方法中添加警報,那麼它工作正常(這就是爲什麼我認爲它是一個競爭條件)。
function loadXML(link) {
$('#div1').load(link);
loadImage(link);
if (link == "news.html") {
$.ajax({
type: "GET",
url: "news.xml",
dataType: "xml",
success: newsParser
});
}
}
當我在網上搜索時,我已經看到可能使用信號量或超時的事情。這些對我來說都不是很好。
如果在xml之前沒有加載html頁面,那麼沒有div來添加信息。 我也嘗試加載不同的xml文件,當你去到網頁和存儲數據,以便它不會被解析每次你去特定的頁面,但我沒有成功,在搞清楚。
我感謝您提供的任何幫助!
查找到deferreds。它會確保在嘗試運行成功功能之前,這兩個調用都已完成。 http://api.jquery.com/deferred.then/ –
除非你在頁面加載後創建某種更新的實時饋送,否則將數據集成到服務器上可能會更好。這避免了AJAX和事件驅動編程的所有複雜性。它還通過使HTML輸出可緩存來節省計算量。 –
你試圖完成什麼?你期望發生什麼事以及你期望它發生的順序是什麼? –