符合需求的润乾报表展示时的等待提示

 

需求背景:

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

问题分析:

通过 div,控制提示信息的展示。从我的理解来看,提示等待信息分两种情况,第一种,数据集运算时间比较短,页面的数据量比较大,比如大数据量的网格式报表。第二种,数据集运算非常附件,耗费大量时间,而页面展示的报表很小,比如一个汇总页面。

问题解决:

  1. 第一种情况:

举例说明,在单元格表达式中用 to(1,30000),处理方式如下

Div 设置层:

<divid=‘wait_panel’ style=‘Z-INDEX: 12000; LEFT: 0px; WIDTH: 100%; CURSOR: wait;POSITION: absolute; TOP: 0px; HEIGHT: 100%’>

<tablewidth=‘100%’ height=‘100%’ id=“Table1”>

<tralign=‘center’ valign=‘middle’>

    <img src="images/loading.gif" /></td>
请等待...

Js 如下:

functionShowWaiting()

{

document.getElementById(‘wait_panel’).style.display= ‘none’;

}

if(window.onload == null)

{

window.οnlοad= ShowWaiting;

}

通过 window 的 onload 来控制层得展示。

  1. 第二种情况:

数据集计算时间很长,而页面数据很少,可能只有一页。这个时候如果用第一种方案,前端经常会出现很长时间的空白,然后瞬间出现等待提示,最后展示出报表,不符合客户的需求。

此时可以用一个 iframe 把报表页面引入,在主页面显示等待信息。主页面监视 iframe 的状态,当发生 onload 时,隐藏等待信息。

页面如下:

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

</tr>

<tr align='center'valign='middle'>

<td>请等待...</td>

</tr>
    <iframe id="rpt_frame" name="rpt_frame"src="show.jsp" frameborder="0" width="100%"height="100%"></iframe>

<scripttype=“text/javascript”>

window.frames[‘rpt_frame’].onload =function(){

    // 隐藏等待窗口

    document.getElementById('wait_panel').style.display = 'none';

}

总结:第一种写法简单,符合情况的话使用效果也比较好。第二种适应特定情况,客户可以根据具体情况选择使用那一种解决方案。