如何在javaScript中生成PDF后停止加载效果?

时间:2015-12-14 12:57:31

标签: javascript

生成PDF或Excel工作表后如何停止加载邮件?

我的代码如下:

第一个过程:

$(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毫秒,但我的要求是我要显示加载消息,直到我的jasper报告或Excel表格被加载,加载数据后我想在JSP页面中停止显示加载。

1 个答案:

答案 0 :(得分: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插件可用于此类处理,因此您可能需要调查它们是否适合您的情况。