我有一个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秒,因此有足够的时间来查看消息。
答案 0 :(得分:1)
UI被锁定,因为ajax async
属性设置为false
。将其设置为true
并尝试一下。 SaveData
方法将完成,更新UI以显示“保存数据...”文本,然后在ajax调用返回时再次更新。
答案 1 :(得分:-1)
尝试在 Chrome 调试上运行。我不需要更改任何代码。之后就可以了。