从服务器下载文件时显示进度条

Use*_*034 13 javascript java jquery progress-bar

我需要向请求下载文件的用户显示进度条.我正在使用J2EE应用程序生成该文件.用户将提交表单数据以获取文件.服务器将所有提交的数据进行操作,生成PDF文件并将其发送回客户端.

所以我想向用户显示进度条,直到文件到达客户端.有没有办法做到这一点?

jAn*_*ndy 9

如果我理解你,你想要显示一个进度条,直到你的服务器准备好发送文件,而不是显示下载文件的进度.

如果这是真的,那么你正在处理一个艰难的运动.可靠的进度条需要知道(非常精确)您正在做什么以及需要多长时间.在你的情况下,有许多不可靠的因素(其中一个,也许是最大的因素是网络本身).

因此,大多数开发人员使用某种"无尽"动画来显示"正在进行中的工作".

更新

根据您的评论,显示"正在进行中的工作"动画的最简单方法是

$.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
    }
    ...
});
Run Code Online (Sandbox Code Playgroud)

在单个请求的情况下.您还可以为(.ajaxStart().ajaxStop())设置全局ajax事件处理程序以设置show/hide功能.

参考文献:阿贾克斯() ,.ajaxStart() ,.ajaxStop()