$.ajax({
url: "/cgi-bin/stats.exe",
method: "post",
async: false,
data: { refresh: "a41" }
});
同步使用ajax post - “async:false”。
虽然它在活动请求期间阻止浏览器,但是将光标更改为沙漏或显示等待.gif的最有效方法是什么?
也许在进入此功能时设置光标然后在success or complete function中将其更改回来?
感谢任何建议。
谢谢。
答案 0 :(得分:3)
我没有对此进行测试,但我认为会这样做:
$('html, body').css('cursor', 'wait');
$.ajax({
url: "/cgi-bin/stats.exe",
method: "post",
async: false,
data: { refresh: "a41" },
success: function() {
$('html, body').css('cursor', 'auto');
// the rest of your processing here
},
error: function() {
$('html, body').css('cursor', 'auto');
}
});
Per @ patrick的建议,也将其更改为错误。
答案 1 :(得分:2)
不要让请求同步,因为它会完全阻止其他所有内容。相反,您可以使用异步请求,但通过“阻止”UI使其看起来像是同步的。我为此使用了jQuery.blockUI()。
答案 2 :(得分:1)
我建议使用jQuery blockUI plug-in。它将更改光标,在用户等待时显示您喜欢的任何消息或图标(http://ajaxload.info/)。网站上有很多关于如何使用它的信息,但最简单的形式是:
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
这将自动显示等待光标并阻止用户活动,直到ajax调用完成。