我希望在常规http请求期间有“正在加载...”/“正在进行...”消息。这应该只在http请求周期中显示,一旦你完成请求并得到响应,它应该会响起。我热衷于常规的HTTP请求,以及需要更长时间而不是AJAX的HTTP请求。代码块,示例,指针赞赏。这是一种方法,我希望有一个共同的方法,以便它可以用于任何http请求。
答案 0 :(得分:1)
你应该使用beforeSend和complete事件:
$.ajax({
...
beforeSend: function(){
//Here you loading SHOW
},
complete: function(){
//Here you loading HIDE
}
...
});
答案 1 :(得分:0)
基本上,当执行普通的HTTP请求(不是AJAX)时,客户端浏览器已经提供了进度指示器。此指标因浏览器和平台而异,您不能依赖它。
一旦离开页面,你的javascript就会停止工作,所以不要寻找一个javascript解决方案来显示这样的进度指示器。根据此HTTP请求的触发方式,可能有不同的方法来实现。例如,如果标记中有一个锚标记触发正常的HTTP请求,您可以订阅此锚点的单击处理程序并使用javascript显示动画微调器,然后让浏览器执行重定向。
就AJAX请求而言,您可以订阅.ajaxStart()
和.ajaxComplete()
全局处理程序来分别显示和隐藏一些微调器。
当然,一切都取决于实施。没有神奇的解决方案可以处理所有可能的情况。所以基本上你必须找到一个适合你特定环境的解决方案,遗憾的是你还没有详细说明。
答案 2 :(得分:0)
页面完全加载后,页面上可能会隐藏一个元素。 E.g:
<img id="loading" src="loading.gif" alt="Loading..." />
<script type="text/javascript">
$(function() {
$('img#loading').hide(); // Called when whole page has been loaded
});
</script>
答案 3 :(得分:0)
我认为在纯javascript HTTPRequest同步调用期间不可能呈现任何信息(在JQuery中不是这种情况)。如果在调用send方法之前更改样式,类..,则不会呈现此信息。
要解决此问题,我将调用更改为异步调用,然后可以在调用返回之前呈现样式,类..更改(使用onreadystatechange获取结果并重置样式)