首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 问一个很实用,但小弟我却想不出什么办法的 页面加载友好提示的有关问题

2012-03-31 
|M| 问一个很实用,但我却想不出什么办法的 页面加载友好提示的问题比如我有页面A.aspxb.htm当我访问A.aspx

|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 ">


function SetPorgressBar(pos)
{
//设置进度条居中
var screenHeight = window[ "mainWindow "].offsetHeight;
var screenWidth = window[ "mainWindow "].offsetWidth;
ProgressBarSide.style.width = Math.round(screenWidth / 4);
ProgressBarSide.style.left = Math.round(screenWidth / 3);
ProgressBarSide.style.top = Math.round(screenHeight / 2);
ProgressBarSide.style.height = "21px ";
ProgressBarSide.style.display = " ";

//设置进度条百分比
ProgressBar.style.width = pos + "% ";
ProgressText.innerHTML = "正在加载,请稍后..... " + pos + "% ";
}

//完成后隐藏进度条
function SetCompleted()
{
ProgressBarSide.style.display = "none ";
//MyTable.style.display= "none "; //带上就报错,
}
</script>
</head>
<body>
<!-- <div id= "mydiv " style= "width: 224px "> 数据处理中.... </div> -->
<div id= "ProgressBarSide " style= "position:absolute;height:21px;width:100px;color:Silver;border-width:1px;border-style:Solid;display:none ">
<div id= "ProgressBar " style= "position:absolute;height:21px;width:0%;background-color:PaleTurquoise "> </div>
<div id= "ProgressText " style= "position:absolute;height:21px;width:100%;text-align:center "> </div>

</div>
</body>
</html>
[解决办法]
前进后退都没问题 你看看
[解决办法]
哎,你如何就那么死板呢?
我上面用隐藏框架的时候,写的是当客户点击时,这只是一个触发条件,你说你要在加载时,没问题啊你可以onload就提交页面,也就是说你本页完全就是一个空白页(呵呵,这样加载够快了把) <body onload= "javascript:getContent(); "> 你就在getContent里面提交到隐藏框架不成吗?

[解决办法]
楼上用线程做啊?

热点排行