我试图显示加载gif并调用ajax请求(在很长时间之后响应),然后隐藏加载gif。
以下是代码:
$('.loading-gif').show();
$ajax({url:'',async:false}).done(function(){...//some operation});
$('.loading-gif').hide();我想知道为什么会这样。注意:当我使用debug进行检查时,它可以工作,但是当调用ajax请求时,gif映像将停止其动画化。还有什么是我得到这个决心的解决方案。
发布于 2018-02-16 05:23:59
JS是单线程的,当您使用异步标志发出ajax请求时,它会停止线程,从而导致动画停止。
另外,进行同步http调用也不是很好的做法。
这应该能解决你的问题。
$('.loading-gif').show();
$ajax({url:''})
.done(function(){
...//some operation
$('.loading-gif').hide();
});发布于 2018-02-16 08:17:09
尝试设置异步:true,因为它将允许呈现UI元素以及ajax调用
发布于 2018-02-16 05:23:20
Jquery done函数只有在ajax请求成功完成时才运行,因此在ajax函数中调用$('.loading-gif').hide();。
所以ajax代码看起来就像。
$('.loading-gif').show();
$ajax({url:'',async:false})
.done(function(){
...//some operation
$('.loading-gif').hide();
});https://stackoverflow.com/questions/48820482
复制相似问题