基本上我有这样的代码。我试图简单地更新一个div,但是第一个innerHTML调用要么不起作用,要么永远不会在浏览器中呈现。
第二个确实有效,它在ajax调用完成后附加" complete“。我确信这与ajax调用有关,但我不明白为什么会发生这种情况,因为在Firefox中没有问题。有没有人知道哪里出了问题,或者firefox中有没有bug之类的?IE为什么要等待呈现innerHTML调用。是否应该在调用后立即更新div,或者IE explorer是否需要等待一段时间?
document.getElementById("status").innerHTML = '<div>Loading</div>';
$jQuery.ajax({
type: "POST",
url: urlValue,
data: parameters,
cache: false,
async: false,
dataType: "json"
});
document.getElementById("status").innerHTML = '<div>Complete</div>';
发布于 2011-10-29 21:02:00
为什么不直接异步做呢?
var status = $('#status');
status.html('<div>Loading</div>');
jQuery.ajax({
type: "POST",
url: urlValue,
data: parameters,
cache: false,
dataType: "json",
success: function() {
status.html('<div>Complete</div>');
}
});
发布于 2011-10-29 21:02:16
尝试在加载完成时执行这些代码。可能在某一时刻
document.getElementById("status").innerHTML = '<div>Loading</div>';
已执行的DOM尚未准备好访问它。
无论如何,在DOM准备好之前,您不能更改它。除了document.write,但这是另一回事。
这可能会有帮助
setTimeout(function(){document.getElementById("status").innerHTML = '<div>Loading</div>';},0);
ajax post request ...
https://stackoverflow.com/questions/7941652
复制相似问题