javascript - Div.Show 在运行时不起作用,但在单步执行代码时起作用

标签 javascript css ajax jquery

我有一个在保存时应该出现的 div。其标记与此类似:

<div class="Working" style="display: none;">Message</div>

稍后在我的代码中我有一些保存逻辑,它执行以下操作:

function SaveData() {
    var cancelSave = false;

    $('.Working').text('Saving data ...').show();
    var saveData = { 'Data': myData }; // Actually a lot of logic in here

    if (cancelSave) {
        $('.Working').hide();
    } else {
        $.ajax({
            // bunch of stuff here
            async: false, // tried this both ways
            error: function (rsp) {
                $('.Working').hide();
            },
            success: function (rsp) {
                $('.Working').text('Saved');
                $('.Working').fadeOut(5000, DoNothing());
            }
        });
    }
}

function DoNothing() {
    // Does nothing
}

如果我单步执行代码,当我单步执行初始 .show() 行时,div 会完美显示。但是,当我“全速”运行时......我从未看到“正在保存数据......”消息。实际保存大约需要 5-7 秒,因此有足够的时间来查看该消息。

最佳答案

UI 被锁定,因为 ajax async 属性设置为 false。将其设置为 true 并尝试一下。 SaveData 方法将完成,更新 UI 以显示“正在保存数据...”文本,然后在 ajax 调用返回时再次更新。

关于javascript - Div.Show 在运行时不起作用,但在单步执行代码时起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20976274/

相关文章:

javascript - React Router URL 抛出参数错误

javascript - 更新 Angular forEach 内部的外部变量

javascript - 在 NodeJS 中实现阻塞控制流

javascript - css 和 js 无法在 Rails 生产模式下工作

html - Chrome 和 Safari 上的 CSS 悬停问题

jquery - XMLHttpRequest 无法加载 http ://localhost:8080/exist/rest/db/. ... Access-Control-Allow-Origin 不允许 Origin null

javascript - jquery 对话框中自定义警告框的问题

javascript - 使 .active 类在 slider 上加载

javascript - Jquery - 图像未在第一次点击时加载

php - 查询数组的结果只显示一个结果?