在我们的Web应用程序中,我们有大量的附件,一些是静态的(来自数据库)和一些动态的(生成的),一些生成的文件需要很长时间(Content-Disposition: Attachment
)
下载,用户有时会点击。一旦文件实际提供给浏览器,有没有显示和隐藏加载器?
我在stackoverflow上找了类似的问题,但是没有一个有用的答案:example。
这是一个可行的问题,还是我应该尝试提高文件的生成速度?
答案 0 :(得分:4)
为此您可以使用此社区中的以下帖子: -
JavaScript/jQuery to download file via POST with JSON data
使用我首先提到的javascript post方法。 希望这最终能回答你的问题。 :)
答案 1 :(得分:2)
您可以使用ajax代码进行表单提交。当服务器处理请求时,在页面顶部显示带有加载图标的div。
在jsp中编写以下代码。
<div id="submitPage">
<img src="/images/loading.gif" alt="">Submitting order...
</div>
最初使用此代码隐藏它
$('#submitPage').hide();
点击提交按钮即可显示。
$('#submitPage').show();
当ajax响应到来时再次隐藏它。
希望它能解决你的问题。
此致 LAV
答案 2 :(得分:2)
您无需再次加载页面。只需使用一些javascript操作来调用ajax调用即可。 :)
$('#submitPage').show();
var url = "urlUsed";
$.post(url, $("#formName").serialize() , function(responseValue){
$('#submitPage').hide();
});
如果不是这样,您可以将ajax调用更改为: -
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();
}
}