首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >直到ajax/json函数完成后,IE Explorer 9才会呈现

直到ajax/json函数完成后,IE Explorer 9才会呈现
EN

Stack Overflow用户
提问于 2011-10-30 04:56:21
回答 2查看 538关注 0票数 1

基本上我有这样的代码。我试图简单地更新一个div,但是第一个innerHTML调用要么不起作用,要么永远不会在浏览器中呈现。

第二个确实有效,它在ajax调用完成后附加" complete“。我确信这与ajax调用有关,但我不明白为什么会发生这种情况,因为在Firefox中没有问题。有没有人知道哪里出了问题,或者firefox中有没有bug之类的?IE为什么要等待呈现innerHTML调用。是否应该在调用后立即更新div,或者IE explorer是否需要等待一段时间?

代码语言:javascript
运行
复制
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>';
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-30 05:02:00

为什么不直接异步做呢?

代码语言:javascript
运行
复制
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>');
    }
});
票数 4
EN

Stack Overflow用户

发布于 2011-10-30 05:02:16

尝试在加载完成时执行这些代码。可能在某一时刻

代码语言:javascript
运行
复制
document.getElementById("status").innerHTML = '<div>Loading</div>';

已执行的DOM尚未准备好访问它。

  1. On DOM ready -DOM "Loading Value"
  2. Making ajax request (“显示加载直到结束”)
  3. 将结束,设置"Complete“

无论如何,在DOM准备好之前,您不能更改它。除了document.write,但这是另一回事。

这可能会有帮助

代码语言:javascript
运行
复制
setTimeout(function(){document.getElementById("status").innerHTML = '<div>Loading</div>';},0);

ajax post request ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7941652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档