【发布时间】:2013-01-13 16:22:35
【问题描述】:
我有以下 javascript:
function someFunction(string) {
$.ajax({
type: "GET",
url: "some_endpoint_returning_json",
async: false,
data: "param=" + string,
beforeSend: function() {
$.blockUI({ message: '<h1><img src="static/busy.gif" /> Just a moment...</h1>' });
},
complete: function () {
$.unblockUI();
},
dataType: "json",
success: function(data) {
window.alert(data.status);
}
});
}
我希望 UI 在发送 ajax 请求之前阻止包含的消息,然后删除消息,取消阻止 ui,然后执行成功功能。
目前情况如下:
- UI 阻塞,但不显示消息
- 弹出成功窗口提示
- 确认警报窗口后,会弹出 BlockUI 消息一瞬间,然后 UI 解除阻塞,页面返回初始状态
【问题讨论】:
-
为什么将
async设置为false?这是你的问题的主要原因 -
调试,能否将服务器代码的执行延迟几秒。这可能是因为在浏览器刷新操作发生之前,服务器返回了 ajax 请求
-
这是因为 async 设置为 false。谢谢大家的快速回复。我不是 UI 专家,我只是在电视上玩一个。
标签: javascript jquery ajax blockui