在JQuery AJAX发布之前暂停

因为我正在处理的页面是一个Intranet页面,所以我的AJAX调用与响应一起非常快。 出于可用性目的,我希望暂停1-2秒,以显示加载动画。 下面是我尝试但动画几乎看不到的。

$(document).ready(function(){ $('#wait').hide(); $('#submitform').click(function(){ $('#wait').show(); $.ajax({ type: "POST", url: "abs_newabs_check.asp", data: { StaffID: $("#suggest1").val() }, success: callback }); }); }); function callback(data, status) { $('#wait').hide(); $("#ajaxdiv").html(data); } 

将setTimeout调用添加到回调函数:

 function callback(data,status) { setTimeout(function() { $("#wait").hide(); $("#ajaxdiv").html(data); }, 1500); } 

NB。 如果我没有弄错的话,data参数将作为闭包传递给匿名函数

我不得不建议考虑一种不同的方式来增加可用性,你现在正在减慢你的服务以帮助用户。 如何使用黄色渐变技术这样你可以在页面上显示一些已经改变的东西,而你不会减慢你的系统速度。

这是一个可能有帮助的相关问题。 使用JQuery实现黄色淡入淡出效果

使用setTimeout函数

 setTimeout("alert('5 seconds has passed.');",5000);