2015-12-14 21 views
0

如何在PDF或Excel工作表生成后停止加载消息?在javaScript中生成PDF后如何停止加载效果?

我的代码是如下:

第一进程:

$(document).ready(function(){ 
    $('#page_effect').fadeIn(2000); 
    var check = $('#loadcheck').val(); 
    alert(check); 
    if(check == "true"){ 
    hide Waiting Page() 
    } 
}); 

第二个过程:

setTimeout(function(){ 
    window.location.href = window.location.href; 
},36000) 

第一进程:

立即取消隐藏生成PDF之前的负载效应而

第二个过程:

花了36000毫秒,但我的要求是我想显示加载消息,直到我的碧玉报告或Excel工作表加载和加载数据后,我想停止显示加载在我的JSP页面。

+2

你似乎使用JavaScript编写代码,但你的标题包含Java。这是不同的语言。 –

+0

什么时候触发pdf生成请求的事件被触发?你在哪里编写代码?你必须显示加载图标,当你收到数据时,你必须隐藏图标。你能显示那个电话/密码吗? –

回答

0

如果你想流在你的JSP你对含有DOM元素报告已经产生(这里没有文件下载)后,你可以很容易地只当一个按钮,会为你执行任务的jQuery的处理程序或链接被点击。

$("#showDataButton").on('click', function(e) { 
    $.ajax({ 
    beforeSend: function(options) { 
     $("#waitingIndicator").show();   
    }, 
    success: function(data) { 
     $("#waitingIndicator").hide(); 
    } 
    }); 
}); 

如果您希望通过PDF下载内容作为您的问题指示,那么这会变得更加棘手。

因为当一个文件开始从服务器上下载的浏览器不触发一个事件,你只能通过选项,我所知道的是诉诸使用的IFRAME。

的想法是,你通过JavaScript发表您的形式向IFRAME并有IFRAME为您执行下载流。这可以让你的主窗口继续做它的事情。当您发布表单时,您会启动一个计时器,每隔几毫秒检查下载的IFRAME的内容。

当你的IFRAME下载文件,应该从指示下载成功或失败的服务器发送的cookie。来自主窗口的定时器回调使用它来确定何时隐藏您的等待消息或通知您一些错误。

有迹象表明存在这种处理,所以你可能要调查他们是否为你的情况下工作的一些jQuery插件。

+0

我已经尝试了您的代码,但它是刷新PDF之前的页面或Excel生成的 。要生成PDF我使用贾斯珀报告,所以当我点击打印按钮它打开新窗口来生成PDF和我的要求是显示加载消息在现有的窗口,并在新窗口中生成PDF后,我必须刷新现有的窗口取消隐藏正在加载...效果 – Awanish