关于java:下载文件时指示在浏览器中加载

Indicate Loading In Browser When Downloading File

在我们的Web应用程序中,我们有大量的附件,一些是静态的(来自DB)和一些动态的(生成的),一些生成的文件需要很长时间(Content-Disposition: Attachment)
下载,用户有时会点击。 一旦文件实际提供给浏览器,有没有显示和隐藏加载器?

我已经在stackoverflow上查找了类似的问题,但是没有一个有用的答案:例如。

这是一个可行的问题,还是我应该尝试提高文件生成的速度?


为此,您可以使用此社区的以下帖子: -

JavaScript / jQuery通过POST使用JSON数据下载文件

使用我先提到的javascript post方法。
希望这最终能回答你的问题。:)


您无需再次加载页面。 只需使用一些javascript操作来调用ajax调用即可。:)

1
2
3
4
5
6
7
8
9
$('#submitPage').show();

var url ="urlUsed";

$.post(url, $("#formName").serialize() , function(responseValue){                  

    $('#submitPage').hide();

});

如果不是这样,您可以将ajax调用更改为: -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function functionName(){
    ajaxRequest = createXMLHttpRequest();
    var url ="urlUsed";
    $('#submitPage').show();
    ajaxRequest.open('get', url , true);
    ajaxRequest.onreadystatechange = processAjaxResponseForMethodName;
    ajaxRequest.send(null);
}

function processAjaxResponseForMethodName(){
    if(ajaxRequest.readyState == 4) {  
           $('#submitPage').hide();

    }
}


您可以使用ajax代码进行表单提交。 当服务器处理请求时,在页面顶部显示带有加载图标的div。

在jsp中写下面的代码。

1
  <img src="/images/loading.gif" alt="">Submitting order...

最初使用此代码隐藏它

1
$('#submitPage').hide();

然后点击你的提交按钮就可以了。

1
$('#submitPage').show();

当ajax响应到来时再次隐藏它。

希望它能解决你的问题。

问候,
盥洗室