我需要向请求下载文件的用户显示一个进度条。我正在使用 J2EE 应用程序生成文件。用户将提交表单数据以获取文件。服务器对所有提交的数据进行操作、生成并将 PDF 文件发送回客户端。
所以我想在文件到达客户端之前向用户显示一个进度条。 有什么办法吗?
最佳答案
如果我理解您的意思,您希望在您的服务器准备好发送文件之前显示一个进度条,而不是显示正在下载的文件的进度。
如果这是真的,那么您正在处理一项艰巨的练习。可靠的进度条需要知道(非常准确)您在做什么以及需要多长时间。在您的情况下,有很多不可靠的因素(其中之一,也许是最大的,是网络本身)。
因此大多数开发人员使用某种“无尽”的动画来显示“进行中的工作”。
更新
根据您的评论,显示“正在进行的工作”动画的最简单方法如下所示
$.ajax({
url: "/myscripts/myserverscript",
type: "POST",
data: {
foo: "bar"
},
dataType: "text",
beforeSend: function(xhr){
// display a progress animation
},
complete: function(xhr, status){
// hide the animation
}
...
});
在单个请求的情况下。您还可以为 (.ajaxStart()
和 .ajaxStop()
) 设置一个全局 ajax 事件处理程序来设置显示/隐藏功能。
引用文献:.ajax() , .ajaxStart() , .ajaxStop()
关于java - 从服务器下载文件时显示进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3011971/