日期:2014-05-18  浏览次数:20615 次

|M| 问一个很实用,但我却想不出什么办法的 页面加载友好提示的问题
比如我有页面
A.aspx
b.htm
当我访问A.aspx页面的时候因为这个页面后台程序很多加载的时候就会很长一段时间显示 "空白 "
所以我想在打开这个页面,而后台还没有处理完的时候显示,页面正在加载中的提示

然后我就在A.aspx页面的前面加上js   显示友好Div   再在页面的最后关闭这个Div
但这样还是不是我的效果
因为这样在后台加载这个页面的时候还是一片空白

所以我想了另一个方法,但不知道要怎么来运用

访问A.aspx页面的时候
让他访问b.htm
这时因为b.htm只是一个简单的网页文件所以很快就显示出来
这个这个b.htm就显示一张正在加载中的gif
然后当A.aspx加载完成后再显示这个A.aspx

本来我是想用Iframe来做的做还不做不出

不知道高手们有什么方法实现我这样的效果
因为我看很多订票的网站都是这样子的

PS:我这里不想用Ajax

谢谢

------解决方案--------------------
up
------解决方案--------------------
if(document.readyState == "complete ")
//
else
//
------解决方案--------------------
有点难度,显示b后再回到a是个问题。

------解决方案--------------------
UP
------解决方案--------------------
帮顶,是很实用..
------解决方案--------------------
帮你冒个泡
------解决方案--------------------
这个实际上和你的html代码有关
html代码的 <table> 标签是要全部加载完毕才显示,而我们一般不注意的会在整个页面套一个大的 <table> 所以这个页面就要整个大 <table> 加载完了才显示
------解决方案--------------------
哦,我明白你的意思。你实际上是想无刷新显示数据,而且不使用ajax

这个也不算啥太大技术,不过就是做起来比较麻烦而已

客户点击,把用户提交到一个隐藏的框架,并调用js显示一个div的进度层
当隐藏框架里程序处理完毕时候,调用父框架的一个js关闭div的进度层,然后使用dhtml改写父框架里面的显示数据
------解决方案--------------------
我这里有个例子 看看能帮助你么?回退的时候没有问题
正常页面的代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
beginProgress();

for (int i = 1; i <= 100; i++)
{
setProgress(i);

//此处用线程休眠代替实际的操作,如加载数据等
System.Threading.Thread.Sleep(20);
}

finishProgress();
}
}
/// <summary>
///显示进度条
/// </summary>

private void beginProgress()
{
//根据ProgressBar.htm显示进度条界面
string templateFileName = Path.Combine(Server.MapPath( ". "), "HTMLPage.htm ");
StreamReader reader = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding( "GB2312 "));
string html = reader.ReadToEnd();
reader.Close();
Response.Write(html);
Response.Flush();
}

private void setProgress(int percent)
{
string jsBlock = " <script> SetPorgressBar( ' " + percent.ToString() + " '); </script> ";
Response.Write(jsBlock);
Response.Flush();
}

private void finishProgress()
{
string jsBlock = " <script> SetCompleted(); </script> ";
Response.Write(jsBlock);
Response.Flush();
}

------解决方案--------------------
调用的HTML的代码
<html xmlns= "http://www.w3.org/1999/xhtml " id= "mainWindow ">
<head>
<title> 无标题页 </title>
<script language= "javascript " type= "text/javascript ">