我希望有“正在加载..”/“正在进行中..”常规http请求期间的消息。这应该只在http请求周期中显示,一旦您获得请求完成并获得响应,它就应该关闭。我热衷于常规的HTTP请求,和HTTP请求,需要更长的时间,而不是AJAX。代码块,例子,指针。这里有一种方法,我希望有一个通用的方法,这样它就可以用于任何http请求。
发布于 2012-02-27 20:59:01
您应该使用beforeSend和complete事件:
$.ajax({
...
beforeSend: function(){
//Here you loading SHOW
},
complete: function(){
//Here you loading HIDE
}
...
});
发布于 2012-02-27 20:35:44
基本上,在执行普通的HTTP请求(而不是AJAX)时,客户端浏览器已经提供了一个进度指示器。这个指标在不同的浏览器和平台上会有所不同,你不能依赖它。
一旦你离开页面,你的javascript就会停止工作,所以不要寻找javascript解决方案来显示这样的进度指示器。根据这个HTTP请求的触发方式,可能有不同的方法来实现这一点。例如,如果你的标记中有一个锚标签,可以触发一个普通的HTTP请求,你可以订阅这个锚的点击处理程序,并使用javascript显示一个动画微调器,然后让浏览器进行重定向。
就AJAX请求而言,您可以订阅.ajaxStart()
和.ajaxComplete()
全局处理程序来分别显示和隐藏一些微调控制项。
当然,一切都取决于实现。没有神奇的解决方案可以处理所有可能的情况。因此,基本上您必须找到一个适合您的特定上下文的解决方案,不幸的是,您没有详细说明。
发布于 2012-02-27 20:43:42
您可以在页面上有一个元素,该元素在页面完全加载后被隐藏。例如:
<img id="loading" src="loading.gif" alt="Loading..." />
<script type="text/javascript">
$(function() {
$('img#loading').hide(); // Called when whole page has been loaded
});
</script>
https://stackoverflow.com/questions/9471857
复制