在执行 $.ajax 时显示加载图像
2022-08-30 04:31:28
我只是想知道如何显示指示异步请求正在运行的图像。我使用以下代码执行异步请求:
$.ajax({
url: uri,
cache: false,
success: function(html){
$('.info').append(html);
}
});
有什么想法吗?
我只是想知道如何显示指示异步请求正在运行的图像。我使用以下代码执行异步请求:
$.ajax({
url: uri,
cache: false,
success: function(html){
$('.info').append(html);
}
});
有什么想法吗?
当然,您可以在发出请求之前显示它,并在请求完成后将其隐藏:
$('#loading-image').show();
$.ajax({
url: uri,
cache: false,
success: function(html){
$('.info').append(html);
},
complete: function(){
$('#loading-image').hide();
}
});
我通常更喜欢更通用的解决方案,将其绑定到全局ajaxStart和ajaxStop事件,这样它就会显示给所有ajax事件:
$('#loading-image').bind('ajaxStart', function(){
$(this).show();
}).bind('ajaxStop', function(){
$(this).hide();
});
使用 ajax 对象的 beforeSend 并完成函数。最好在发送之前从内部显示 gif,以便将所有行为封装在单个对象中。请注意使用成功功能隐藏gif。如果请求失败,您可能仍需要隐藏 gif。为此,请使用“完成”函数。它看起来像这样:
$.ajax({
url: uri,
cache: false,
beforeSend: function(){
$('#image').show();
},
complete: function(){
$('#image').hide();
},
success: function(html){
$('.info').append(html);
}
});