润乾报表数据导出时的等待提示

需求背景:

大数据量得报表在导出时,会有一段很长的等待时间,这个时间内,如果能有人性化提示,能使项目增色不少。

实现方法:

导出可以分为三步,第一步点击导出按钮,弹出导出excel设置窗口进行设置;第二部为点击确定运算报表;第三步为点击浏览器下载。

当点击确定以后,会在网页里面一个叫“报表名_saveAs_frame”的iframe中,请求负责报表导出的servlet,当服务器导出完成时,会将其整个发往客户端浏览器,这个时候iframe的状态会发生变化的,通过js监听这个iframe解决。

具体步骤:

1.        定义一个div,用于展示提示信息

<div id="show"name="show" style="position:absolute!important;left:30%;top:100px;z-index:3;border:0px solid #ff6600;margin:100pxauto;padding:0px;display:none;width:400px;height:300px;text-align:center;">

        <div>

        <img src="../images/loading.gif" />

        </div>

        <div>

        <font color='black' size="2">页面导出中,请稍候...</font>

        </div>

</div>

2.        定义js

function g(id){

        return document.getElementById(id);

}

// 显示等待

function showWaiting() {

document.getElementById("show").style.display="block";

}

// 重写report1_saveAsExcel2函数

var saveFunc = report1_saveAsExcel2;

var report1_saveAsExcel2 = function(retValue){

        showWaiting();

        saveFunc(retValue);

}

// 监视iframe状态

var f = g('report1_saveAs_frame');

f.onreadystatechange = function(){

        if(this.readyState == 'loading') {

        document.getElementById("show").style.display="none";

        }

};

注意事项:

只有IE内核才支持iframe的readyState事件,故,类似360浏览器,遨游,IE等起作用,frifox等浏览器监听不到。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值