web页面加载时友情提示...
功能要求:
在页面加载过程中,因加载的数据比较 耗时,希望在加载过程中,含有友情提示,如“正在加载中.....请稍等...”
ps:请友情协助的朋友注意问题,是在页面刚加载的时候就提示,所以用updateprogress 是不行的。。不过应该可以通过
ajax异步加载数据或是多线程解决,但是对两知识点我了解比较少,求教!! --------------------编程问答-------------------- 多线程好像是没有办法解决的,因为这是web客户端,对客户端机器的控制有限 --------------------编程问答-------------------- 谢谢楼上的朋友!
继续等待高人............ --------------------编程问答-------------------- 都没人来吗 --------------------编程问答-------------------- 我没遇到过。。。。。
不过我觉得可以这样
把所有要显示的内容用DIV 隐藏起来
然后用个设置显示加载中.....DIV为显示
过3秒加载中...DIV关闭 内容DIV 显示!!!!
--------------------编程问答-------------------- 不知道你理解不! --------------------编程问答-------------------- 你可以给需要加载数据的html元素给张图 。
--------------------编程问答--------------------
你好! 我明白你的意思,不过 你的这种处理方式是不能满足我的要求的。。我的加载数据是在Page_load()中。并不是通过事件或什么来触发再加载。 --------------------编程问答--------------------
两者如何同步呢? --------------------编程问答-------------------- 用page_load(),这样,一载入页面就会触发里面的各种事件的 --------------------编程问答-------------------- 页面中放一个div,里面的内容放置你的提示信息,一开始是隐藏的。
然后在前台写一个js函数,控制div的显示与隐藏,在你的page_load方法里调用该js函数,让div显示出来,当数据加载完毕后,隐藏该div即可。 --------------------编程问答-------------------- 这个很简单啊,加载页面的时候显示一个遮罩层,然后数据加载完成就隐藏它,就OK了! --------------------编程问答--------------------
正解 --------------------编程问答-------------------- 更难一点的,后台加载数据进度如何同步到前台进度条中? --------------------编程问答--------------------
+1 --------------------编程问答--------------------
+1
//显示进度条
function showProcess()
{
var msg = document.getElementById("divShowLoading");
msg.style.left = (document.body.clientWidth - 220) / 2 - 150;
msg.style.top = window.screen.height / 3 - 140;
msg.style.display = "block";
document.getElementById('btn_enter').disabled = "disabled";
document.getElementById('btn_cancel').disabled = "disabled";
document.getElementById('btn_org').disabled = "disabled";
document.getElementById('btn_checkadmin').disabled = "disabled";
document.getElementById('btnDefaultPage').disabled = "disabled";
}
//页面加载完毕隐藏进度条
function hiddenProcess()
{
var timerId=null;
var msg = document.getElementById("divShowLoading");
msg.style.left = (document.body.clientWidth - 220) / 2 - 150;
msg.style.top = window.screen.height / 3 - 140;
if(window.document.readyState != null && window.document.readyState != 'complete')
{
msg.style.display = "block";
}
else
{
msg.style.display = "none";
document.getElementById('btn_enter').disabled = "";
document.getElementById('btn_cancel').disabled = "";
document.getElementById('btn_org').disabled = "";
document.getElementById('btn_checkadmin').disabled = "";
document.getElementById('btnDefaultPage').disabled = "";
window.clearTimeout(timerId);
return;
}
timerId = window.setTimeout('hiddenProcess()', 100);
} --------------------编程问答-------------------- 写个简单点的例子
--------------------编程问答-------------------- 10楼的方法正解 --------------------编程问答--------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="test8_Default3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.con{ position: absolute;width:50%;height:50%;background-color:silver;left:0px;top:0px}
</style>
</head>
<body>
<!--请用CSS控制下边的DIV是全屏状态-->
<div id="loading" class="con">页面加载中</div>
<form id="form1" runat="server" style="display:none">
显示!!
</form>
</body>
</html>
<script type="text/javascript">
setTimeout("showDiv()",3000);
function showDiv() {
document.getElementById("loading").style.display = "none";
document.getElementById("form1").style.display = "block"; //显示表单
}
</script>
我来替楼主说下吧,我猜测楼主又大批量的数据需要显示在某某grid里,那么这个大批量的数据的形成不要再页面初始化的时候直接去获得这个数据这样会显的打开网站非常慢。。
整个页面pageload里就做些页面元素的初始化,然后再到web段渲染html,然后在domready里显显示grid区域提示数据在加载,然后ajax请求到后台获得相关的数据。等数据返回显示在前台后就把提示语删除。。
这样虽然增加了一次交互,但是整个页面加载感觉是有序的进行,而并非感觉是网络很卡一样,用户体验相对较好。
补充:.NET技术 , ASP.NET