将xml加载到div时的AJAX竞争条件

时间:2012-10-04 20:56:14

标签: javascript jquery xml-parsing

我正在创建的网站包含多个页面上使用的信息。我设置它的方式是信息存储在xml文件中。然后我使用AJAX加载xml文件,并且在成功时我调用一个追加th的解析方法。

似乎发生了竞争状况。页面在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文件,这样每次进入特定页面时都不会对它进行解析,但是我没有成功解决这个问题。

感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery(您已经使用过)等待DOM加载: $().ready() - http://api.jquery.com/ready/

$(document).ready(function(){ 
  $('#div1').load(link); 
  loadImage(link); 
  //etc..
}