如何仅针对特定请求显示ajax gif? 例如,我的页面在后台每隔30秒调用一次web服务,并且我不想在此回调期间显示gif。另一方面,当我做手动ajax请求时,我想要显示gif。如何仅显示某个特定请求的ajax加载gif?
我正在使用jQuery。
编辑:我没有设置全局处理程序,如http://api.jquery.com/ajaxStart/所示,只需附加到.ajaxStart事件即可。但我不想在每个请求中手动显示/隐藏gif。我需要一些通用解决方案。
如何仅针对特定请求显示ajax gif? 例如,我的页面在后台每隔30秒调用一次web服务,并且我不想在此回调期间显示gif。另一方面,当我做手动ajax请求时,我想要显示gif。如何仅显示某个特定请求的ajax加载gif?
我正在使用jQuery。
编辑:我没有设置全局处理程序,如http://api.jquery.com/ajaxStart/所示,只需附加到.ajaxStart事件即可。但我不想在每个请求中手动显示/隐藏gif。我需要一些通用解决方案。
$('#manualRefresh').click(function(){
$('#myContainer').html('<img src="my-ajax-gif.gif">');
$.get(..., function(data){ ('#myContainer').html(data) });
});
那样?
谢谢你,本,但请看我编辑的问题。 我需要一些通用的解决方案,不要在每个请求上重复显示/隐藏代码。 – 2010-04-22 18:58:21
如何使用Ben提供的匿名函数并将其包装到一个函数(或插件,如果您在许多地方需要这个函数),它们都会显示您的gif并提交您的请求? – justkt 2010-04-22 19:02:02
你是对的,KISS就是这样。谢谢你,Ben,谢谢你,justkt。 – 2010-04-22 19:05:11
请试试这个:
$('#save').click(function(){
$('#ShowLoading').show();
$.ajax(..., success:function(data){....$('#ShowLoading').hide();},
error:function(){....$('#ShowLoading').hide();});
});
HTH
我用的是BlockUI plugin,使得它很容易真的。这是一个简单的包装功能,我写了一些演示代码:
function wjBlockUI(msg) {
var defaultMsg = '<img src="../images/activity.gif" />';
if (null !== msg) {
defaultMsg = msg
}
$.blockUI({ overlayCSS: { backgroundColor: '#aaa' }, message: defaultMsg });
}
你能提供更多的信息?在你的jQuery中,你在设置这个加载动画?一小段或两段代码会非常有用。 – justkt 2010-04-22 18:48:46