我想在正常的http请求期间发送“Loading ..”/“In Progress ..”消息。这应该只在http请求周期中显示,一旦你得到请求完成,你得到的回应,它应该关闭。我热衷于定期的HTTP请求和HTTP请求,花费更长的时间而不是AJAX。代码块,例子,指针表示赞赏。这里有一种方法,我想要有通用的方法,以便它可以用于任何http请求。在javascript/jquery/php的http请求(长时间运行)执行期间显示“正在进行”
回答
基本上,当执行正常的HTTP请求(不是AJAX)时,客户端浏览器已经提供了一个进度指示器。这个指标在浏览器和平台之间会有所不同,你不能依赖它。
当您离开页面时,您的JavaScript停止工作,因此不要寻找JavaScript解决方案来显示此类进度指示器。根据这个HTTP请求被触发的方式,可能有不同的方式来实现这一点。例如,如果在标记中有一个定位标记触发正常的HTTP请求,则可以订阅此定位点的点击处理程序,并使用JavaScript显示动画旋转,然后让浏览器执行重定向。
就AJAX请求而言,您可以订阅.ajaxStart()
和.ajaxComplete()
全局处理程序来分别显示和隐藏某个微调器。
当然,一切都取决于实施。没有任何魔术解决方案可以处理所有可能的情况。所以基本上你必须找到适合你的具体情况的解决方案,不幸的是你没有详细说明。
页面完全加载后,页面上可能会隐藏一个元素。例如: -
<img id="loading" src="loading.gif" alt="Loading..." />
<script type="text/javascript">
$(function() {
$('img#loading').hide(); // Called when whole page has been loaded
});
</script>
难道你不想用$(window).ready()来代替吗? – shaunsantacruz 2012-02-27 20:50:49
您应该使用beforeSend和完整的事件:
$.ajax({
...
beforeSend: function(){
//Here you loading SHOW
},
complete: function(){
//Here you loading HIDE
}
...
});
我认为这是不可能使纯JavaScript的HTTPRequest同步呼叫(而不是在JQuery中的情况下)中的任何信息。如果在调用send方法之前更改样式类,则不会呈现此信息。
要解决这个问题,我改变来电异步调用,则样式,类..变化可以调用返回之前渲染(使用的onreadystatechange得到的结果和复位风格)的
- 1. AWS Lambda长时间运行http请求
- 2. 在HTTP请求期间运行脚本
- 3. 显示ZF2请求执行时间
- 4. 长时间运行请求期间的ASP.NET会话超时
- 5. 长时间运行Wicket Ajax请求
- 6. WebClient:如何取消长时间运行的HTTP请求?
- 7. Akka HTTP和长时间运行的请求
- 8. 在iPhone正在运行的定期时间显示广告
- 9. VBA - 显示子运行多长时间
- 10. 正确处理长时间运行的HTTP进程
- 11. 为长时间运行的进程显示进度
- 12. jquery .ajax请求被长时间运行阻止.ajax请求
- 13. 如何在Rails中搜索长时间运行的请求
- 14. 在Django中自动终止长时间运行的请求
- 15. 在主塔上停止长时间运行的请求
- 16. 在Django测试交错长时间运行的请求
- 17. 如何在长时间运行的进程上运行coverage.py?
- 18. ASP.NET - 在长时间运行的HTTP请求上捕获客户端断开
- 19. 如何显示长时间运行的Ansible任务的进度?
- 20. 长时间运行时未显示进度微调器
- 21. 执行HTTP请求
- 22. Rails - 在AJAX请求正在执行时显示加载器
- 23. cURL/PHP请求执行50%的时间
- 24. 在SQL Server中执行长时间运行的作业
- 25. 在PHP中显示MySQL执行时间
- 26. PHP:在服务器施加执行时间限制时对长时间运行的脚本进行编码
- 27. 运行时间执行在Mac
- 28. aws codedeploy长时间运行的进程
- 29. 长时间运行的进程
- 30. 终止长时间运行的进程
可能重复[延伸jQuery的ajax功能](http://stackoverflow.com/questions/8358422/extending-jquerys-ajax-function) – 2012-02-27 20:40:57
@MarkSchultheiss在这里我们谈论的不是ajax东西,而是一个普通的http请求/响应fyi给你。 – nepsdotin 2012-02-27 20:44:53