javascript - JQuery - $.ajax - Firefox 10 超前运行

标签 javascript jquery ajax firefox

我有一个简单的 $.ajax POST 调用,用于 XML 文件来填充 HTML 元素。它在 IE 9 中工作正常。“error:”子句在两种浏览器中工作正常。在“success:”情况下,IE 9 在 A: 点礼貌地等待“success:”子句完成。 Eager-beaver FF 10 闯入看起来就像一个单独的线程,在“design_xml”变量启动并运行之前返回到调用“doPopulate()”函数,因此无法加载 HTML 元素。

但是,如果我让它在最后一行中使用 window.alert 等待,那么它就会正常工作 - 显然提供了一个暂停,让 $.ajax 调用 catch 。现在我不想在这里出现警报,所以我尝试了各种延迟循环 - 超时、for 循环等 - 但它们都不起作用。谁能告诉我这里发生了什么?

URL 是本地计算机。 Windows Vista。

var design_xml = null; //Global variable to hold design XML
var template_url = "Docs_and_notes/Design_template_02.xml";  //Template URL (temp loc.)
var template_urlzz = "Docs_and_notes/zzDesign_template_02.xml";  // Duff template URL for testing

function getDefaults() {
    $.ajax({
    type: "POST",
    url: template_url,
    timeout: 5000, // 5 seconds or go home
    success: function(xml) {
console.log("Succeed");
        design_xml = xml; xml = null;  //Make XML global, kill original 
    },
    error: function(request, status, err) { //Catch misfires
console.log("Fail");        
        window.alert("Error 001: Design template not loaded. Status: " + status + " err:" + err);   
    }
//Point A:      
    //window.alert("Final line");   
    }); 

function doPopulate() {
    getDefaults();
    $("#fn").text($('filename', design_xml).text());
}

XML:

<filename default="untitled">gaberlunzie</filename>

HTML:

<body>
    <button onclick="doPopulate()"></button>
    <div>
        <span id="fn">Filename</span>
    </div>
</body>

最佳答案

$("#fn").text($('filename', design_xml).text()); 应该位于 success 参数中,设置design_xml后。

关于javascript - JQuery - $.ajax - Firefox 10 超前运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482360/

相关文章:

jquery - 如何使用 jquery ajax 根据 laravel 中的数据库值 0 或 1 更改按钮类和 fontawesome 图标?

javascript - 加载层内的 Jquery 脚本不起作用

javascript - Highcharts : How to align column chart and bubble chart vertically in the same series

jquery - 一个寻呼机 - jQuery - mouseenter 和 mouseleave - 如果单击则跳过 mouseleave

javascript - 通过参数将php变量传递给javascript函数,PHP,JAVASCRIPT

ajax - jQuery AJAX 成功回调 : Can I see the headers sent?

java - 使用ajax将参数传递给Controller

JavaScript (w/jQuery) - 在悬停时增加一个元素以填充容器,当被其他元素包围时

javascript - 名称为保留关键字的解构属性

javascript - HTML 自动播放一个视频然后循环播放另一个视频