页面执行需要长时间时向用户的提示信息

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

当在一个页面执行时间比较长时,如大数据量的查询等等。可采用下面的方法为用户显示提示。

用例场景:

用户要生成XML文件上报给国家局,而这个数据量是非常大量的,查询数据一段时间,写入XML文件也需要一段时,那么怎样才能给用户一个好的提示那。如当前正在分析上报数据。分析完成后,为用户提示“当前正在写入XML文件”、“当前正在压缩XML文件”等等。在服务器执行完一个阶段后就给用户一个提示。让用户知道自己所处在的位置。这样会让用户知道没有死机。

//在Page_Load方法中调用此方法。

private void loadplan()

{

string loadtext="正在加载页面,请您耐心等待";

Response.Write("<div id='mydiv' width='400px'>");

Response.Write("_");

Response.Write("</div>");

Response.Write("<script>mydiv.innerText = '';</script>");

Response.Write("<script language=javascript>");

Response.Write("var output = '"+loadtext+"';");

Response.Write("var dots = 0;var dotmax = 10;function ShowWait()");

Response.Write("{dots++;if(dots>=dotmax)dots=1;");

Response.Write("for(var x = 0;x < dots;x++){output += '▌';}mydiv.innerText = output;}");

Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; window.setInterval('ShowWait()',1000);}");

Response.Write("function HideWait(){mydiv.style.visibility = 'hidden';mydiv.style.display='none';window.clearInterval();}");

Response.Write("StartShowWait();</script>");

Response.Flush();

Thread.Sleep(10);

}

//在一个阶段执行完成后调用此方法

//title 给用户的提示

private void UpdatePlan(string title)

{

Response.Write("<script language=javascript>");

Response.Write("output = '"+title+"';");

Response.Write("</script>");

Response.Flush();

Thread.Sleep(10);

}

在HTML页面中要有下面这个东东呀!

<script language="javascript">

<!--

HideWait();

//-->

</script>

例子:

//开始生成上报文件

private void btnBuild_Click(object sender, System.EventArgs e)

{

this.UpdatePlan("正在查询上报文件所需要的数据,这可能需要一段时间,请您耐心等待!");//调用

System.Data.DataSet objs=this.buildobjs();

if(objs==null)return;

lnpt.DataAccessLayer.SystemCommon.UpLoadDAL dal=new lnpt.DataAccessLayer.SystemCommon.UpLoadDAL();

string uploadtype=this.Request.QueryString["uploadtype"];

string path=this.GetPath();

path=path+this.txtVersion.Text+this.txtAPP_CD.Text+System.DateTime.Now.ToFileTime().ToString()+".xml";

this.UpdatePlan("正在生成XML上报文件,这可能需要一段时间,请您耐心等待!");//调用

dal.BuildXML(path,objs,uploadtype,this.txtVersion.Text,this.txtAPP_CD.Text,txtSEND_ORGAN.Text,this.txtRECE_ORGAN.Text,this.txtCONDITION.Text);

//添加上报文件生成记录

this.UpdatePlan("正在压缩生成的XML上报文件,请您耐心等待!");//调用

path=this.CreateZIPFile(path);

this.AddHistroy(path);

this.BindHistroy();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航