【发布时间】:2015-02-17 13:42:31
【问题描述】:
我正在开发一个 asp.net 网络表单项目,该项目有一个 site.master 页面以及其他使用该站点主页面的 aspx 页面。
我在网站主服务器上有一个 div:
<div id="msg" class="dialog">loading, please wait...</div>
它的完整上下文(站点管理员)是这样的(注意我在这里保持简单):
<body id="pageContainer">
<div id="msg" class="dialog">loading, please wait...</div>
<div id="pageBody">
<form id="formMaster" runat="server">
</form>
</div>
</body>
class=对话框是这样定义的:
.dialog {
display: none;
width: 300px;
height: 300px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -150px;
margin-top: -150px;
}
基本上,当我想跨请求显示“正在加载,请稍候”时,我会使用它,并通过 jquery 打开/关闭它:
// Simulate some time before everything's loaded
setTimeout(function () {
$("#msg").fadeOut(function () {
// Wait for #msg to fade out before fading in #pageBody
$("#pageBody").animate({
opacity: "1.0"
}, 1);
});
}, 1);
这是在$(document).ready() 内部完成的。我需要模拟一些时间,然后使 pageBody div 可见(使用 opacity 属性)...这似乎工作正常,但最初说超链接点击/提交将用户重定向到另一个页面加载不显示马上...这需要相当长的时间才能让用户感到困惑。
例如,如果我有一个简单的超链接页面(该页面包含大量数据库数据)...最初单击该超链接会显示旋转圆圈(在 chrome 选项卡中),然后最终将您带到该页面。那时我的加载 div 出现,最后淡出并显示页面。我希望我的加载 div 可以立即出现,以便用户知道正在发生一些事情。我们的大多数用户对网络不太了解,所以他们甚至不注意浏览器的旋转轮,他们只是认为页面没有响应(我不怪他们,这可能很棘手)。
我该怎么做才能让这个加载,请稍候... div 几乎是瞬间出现的?或者我可以吗?
【问题讨论】:
标签: javascript jquery html asp.net