由于某个jsp页面要实现较长等待时间功能的时候,对于用户,此时IE中是空白页。
  如何让处理过程中出现等待的提示,我把自己的解决思路奉献给大家。
  创建一个等待页面, 包含两个层layer1,layer2.layer1出现等待提示,layer2 包含iframe,利用iframe调用你那个长时间的jsp。开始时layer2隐藏,layer1显示。
  等jsp处理结束后,利用
  <script language="javascript">   if(parent.layer3.style.display!="block")   {    parent.layer1.style.display="none";    parent.layer2.style.display="block";   }
  把提示的哪个层隐藏,自己的层显示。
 
  下面为我的等待页代码:
  <%@ page contentType="text/html; charset=GBK" %> <html> <head> <title> 机动车统计 </title> </head> <style type="text/css"> <!-- body {  margin-left: 0px;  margin-top: 0px;  margin-right: 0px;  margin-bottom: 0px; } --> </style>  <body bgcolor="#C0C0C0"> <%   String sBeginDate=request.getParameter("startDate");   String sEndDate=request.getParameter("endDate");   String sBeginGLBM=request.getParameter("startGLBM");   String IsChk=(String)request.getParameter("IsChk");   String sPreStatisticYear=(String)request.getParameter("preStatisticYear");   String sStatisticYear=(String)request.getParameter("StatisticYear");   String sEndGLBM=request.getParameter("endGLBM");   String strUrl=request.getParameter("url");     String strTj = strUrl + "?startDate=" + sBeginDate+"&endDate="+ sEndDate + "&IsChk="+ IsChk +     "&preStatisticYear="+ sPreStatisticYear+"&StatisticYear="+sStatisticYear+"&startGLBM="+sBeginGLBM+"&endGLBM="+sEndGLBM;     %> <div style="position: absolute; width: 100%; height: 100%; z-index: 1" id="layer1"> <p align="center"> </p> <p align="center"> </p> <table align="center"><tr><td> <div style="font-size:8pt;padding:2px;border:solid black 1px"> <span id="progress1">   </span> <span id="progress2">   </span> <span id="progress3">   </span> <span id="progress4">   </span> <span id="progress5">   </span> <span id="progress6">   </span> <span id="progress7">   </span> <span id="progress8">   </span> <span id="progress9">   </span> </div> </td></tr></table> <script language="javascript"> var progressEnd = 9;  // set to number of progress <span>'s. var progressColor = 'blue'; // set to progress bar color var progressInterval = 1000; // set to time between updates (milli-seconds) 
var progressAt = progressEnd; var progressTimer; function progress_clear() {  for (var i = 1; i <= progressEnd; i++) document.getElementById('progress'+i).style.backgroundColor = 'transparent';  progressAt = 0; } function progress_update() {  progressAt++;  if (progressAt > progressEnd) progress_clear();  else document.getElementById('progress'+progressAt).style.backgroundColor = progressColor;  progressTimer = setTimeout('progress_update()',progressInterval); } function progress_stop() {  clearTimeout(progressTimer);  progress_clear(); } progress_update();  // start progress bar </script> 
<p align="center"><b><font size="4" face="黑体">处理数据中,请稍后。。。。。。。</font></b></p> </div> <div style="position: absolute; width: 100%; height: 100%; z-index: 1" id="layer2">  <iframe name="I2" marginwidth="1" marginheight="1" height="100%" width="100%"  src="<%=strTj%> ">  浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe></div> <div style="position: absolute; width: 100%; height: 100%; z-index: 1" id="layer3"> <p align="center"> </p> <p align="center"> </p> <p align="center"> </p> <p align="center"><b><font size="4" face="黑体" color="blue">处 理 数 据 出 错!</font></b></p> <p align="center"><textarea rows="15" name="S1" cols="53"></textarea></p> <p align="center"><input type="button" value=" 关 闭 " name="B3" onclick="window.close()"></p> </div> 
<script language="javascript">   layer2.style.display="none";   layer3.style.display="none"; </script> </body> </html>
   
 
  |