javascript - 加载 AJAX 调用的 div 在 IE 或 Chrome 中不显示,在 Firefox 中工作正常

标签 javascript jquery ajax internet-explorer google-chrome

我正在尝试编写一个非常简单的函数,它显示一个显示“正在加载...”的 div,然后进行 jQuery ajax() 调用,一旦完成,隐藏正在加载的 div。该代码在 Firefox 中完美运行,但 IE 7(可能也是 8/9,仅在 7 上测试过)和 Chrome 都有问题:

function ajaxwl(url) {
    $('#loadingDiv').show();
    var xmlHttp=$.ajax({type: "GET",
        url: url,
        async: false });
    $('#loadingDiv').hide();
    return xmlHttp;
}

我使用 Chrome 调试器单步调试了代​​码,然后它起作用了——加载 div 按预期显示。但是,如果我在没有调试器的情况下运行代码,Chrome(和 IE 7)会在不显示加载 div 的情况下加载 AJAX 请求。也许这与我使用非异步请求时 Chrome 锁定浏览器有关?

编辑:我最终将请求转换为异步请求(这种转换需要在我继承的这段代码中的任何地方完成,但我一直在拖延......)现在一切都按预期工作:

function ajaxwl(url) {
    $('#loadingDiv').show();
    var xmlHttp=$.ajax({type: "GET",
        url: url
    }).done(function() {
        $('#loadingDiv').hide();
    });
    return xmlHttp;
}

感谢您的快速回复!

最佳答案

加载 div 在 IE 中不可见,因为您在同步模式下使用 AJAX,由于 js 执行挂起浏览器,您将看不到它何时可见以及何时隐藏。在所有其他浏览器中,js 执行速度非常快,因此您可以看到它。

关于javascript - 加载 AJAX 调用的 div 在 IE 或 Chrome 中不显示,在 Firefox 中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848823/

相关文章:

javascript - 粘贴到 contentEditable div 时如何保留 onclick

javascript - 将事件绑定(bind)到 JavaScript 中的元素

javascript - 为客户端应用程序提取实时服务器端数据

javascript - 在特定页面位置更改 div css

javascript - 成功ajax后如何在文本框中显示多个自动完成值

asp.net - 脚本管理器警报不适用于模型弹出按钮单击

PHP 数组效率与 mySQL 查询

Javascript Array.prototype.filter() 不工作

javascript - 添加了事件监听器,但需要点击 2 次

javascript - AJAX 将数据传递给 PHP