gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 19:49:29 25 4
gpt4 key购买 nike

我有一个简单的 $.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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com