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

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

第一种情况

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

Div设置层:

<div id='wait_panel' style='Z-INDEX: 12000; LEFT: 0px; 100%; CURSOR: wait; POSITION: absolute; TOP: 0px; HEIGHT: 100%'>

<table '100%' height='100%' id="Table1">

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

<td >

<table id="Table2" class="loading">

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

</tr>

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

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

</tr>

</table>

</td>

</tr>

</table>

</div>

Js如下:

function ShowWaiting()

{

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

}

if (window.onload == null)

{

window.onload = ShowWaiting;

}

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

第二种情况

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

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

页面如下:

<body>

<div id='wait_panel' style='Z-INDEX: 12000; LEFT: 0px; 100%; CURSOR: wait; POSITION: absolute; TOP: 0px; HEIGHT: 100%'>

<table '100%' height='100%' id="Table1">

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

<td >

<table id="Table2" class="loading">

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

</tr>

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

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

</tr>

</table>

</td>

</tr>

</table>

</div>

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

</body>

<script type="text/javascript">

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

// 隐藏等待窗口

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

}

</script>

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