函数使用该jquery.ajax()
方法从服务器获取数据并将其用作返回值。如果我使用async=true该函数会过早地返回空值。如果我使用async=false函数的等待时间太长。我尝试在请求之前切换 div 显示旋转时钟,但直到请求结束后 div 才会出现。
关于如何不锁定浏览器或显示等待图标/符号/文本的任何建议?
函数使用该jquery.ajax()
方法从服务器获取数据并将其用作返回值。如果我使用async=true该函数会过早地返回空值。如果我使用async=false函数的等待时间太长。我尝试在请求之前切换 div 显示旋转时钟,但直到请求结束后 div 才会出现。
关于如何不锁定浏览器或显示等待图标/符号/文本的任何建议?
你不能。同步请求将锁定浏览器,包括您可能正在进行的任何动画或可能未决的 dom 修改 - 这就是不鼓励它们的原因。很有可能,您正试图从触发 ajax 请求的函数中返回一个值,这对异步请求不起作用 - 修改您的逻辑以处理成功回调中的响应处理,一切都会好起来的......
为了不锁定浏览器,您应该使用异步请求,也许您的代码或 ajax 响应需要重构。
但是如果你仍然不想使用异步请求,你可以这样做:
一种方法是放置图像(正在加载... gif 动画)。在发送 ajax 之前显示它。然后隐藏成功。就像下面一样。
$.ajax({
url: 'ajax/test.html',
beforeSend : function(){
$('#LodingImg').show(); // show image..
},
success: function(data) {
$('#LodingImg').hide(); // hide image
$('.result').html(data);
alert('Load was performed.');
}
});