web页面加载时友情提示... 功能要求: 在页面加载过程中,因加载的数据比较 耗时,希望在加载过程中,含有友情提示,如“正在加载中.....请稍等...” ps:请友情协助的朋友注意问题,是在页面刚加载的时候就提示,所以用updateprogress 是不行的。。不过应该可以通过ajax异步加载数据或是多线程解决,但是对两知识点我了解比较少,求教!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多线程好像是没有办法解决的,因为这是web客户端,对客户端机器的控制有限 我没遇到过。。不过我觉得可以这样把所有要显示的内容用DIV 隐藏起来然后用个设置显示加载中.....DIV为显示过3秒加载中...DIV关闭 内容DIV 显示!!!! 你可以给需要加载数据的html元素给张图 。 你好! 我明白你的意思,不过 你的这种处理方式是不能满足我的要求的。。我的加载数据是在Page_load()中。并不是通过事件或什么来触发再加载。 用page_load(),这样,一载入页面就会触发里面的各种事件的 页面中放一个div,里面的内容放置你的提示信息,一开始是隐藏的。然后在前台写一个js函数,控制div的显示与隐藏,在你的page_load方法里调用该js函数,让div显示出来,当数据加载完毕后,隐藏该div即可。 +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);} 写个简单点的例子<%@ 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请求到后台获得相关的数据。等数据返回显示在前台后就把提示语删除。。这样虽然增加了一次交互,但是整个页面加载感觉是有序的进行,而并非感觉是网络很卡一样,用户体验相对较好。 一个关于ASP.NET的问题 大家提点意见 microsoft为简化多线程做了那些工作 asp.net中怎么实现Open对话框的功能???急急急急急急急急急急急急!!!!! 刚装了.net 2.0,运行时显示“访问 IIS 元数据库失败”,怎样解决? ========急问各位,.net中如何实现让别人下载我的软件时,不能用Flashget、讯雷等?只能点击我的连接? C#可以用来写客户端脚本吗? 求助在线等,iis7+mvc5+Localdb部署时候localdb出错误 c#如何实现web在线交流 关于ajax 关于页面上iframe的问题,求解 如何判断文件夹里是否有文件存在。
不过我觉得可以这样
把所有要显示的内容用DIV 隐藏起来
然后用个设置显示加载中.....DIV为显示
过3秒加载中...DIV关闭 内容DIV 显示!!!!
你好! 我明白你的意思,不过 你的这种处理方式是不能满足我的要求的。。我的加载数据是在Page_load()中。并不是通过事件或什么来触发再加载。
然后在前台写一个js函数,控制div的显示与隐藏,在你的page_load方法里调用该js函数,让div显示出来,当数据加载完毕后,隐藏该div即可。
//显示进度条
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);
}
<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请求到后台获得相关的数据。等数据返回显示在前台后就把提示语删除。。这样虽然增加了一次交互,但是整个页面加载感觉是有序的进行,而并非感觉是网络很卡一样,用户体验相对较好。