我正在开发一个asp.net Web表单项目,该项目有一个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 =对话框定义为div:
.dialog {
display: none;
width: 300px;
height: 300px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -150px;
margin-top: -150px;
}
基本上当我想在请求中显示“loading please wait”时我会使用它,我通过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属性)...这似乎工作正常但最初说超链接点击/提交将用户重定向到另一个页面加载不显示马上......显示混淆用户需要相当长的时间。
例如,如果我有一个简单的超链接页面(其中该页面有很多数据库数据)...初始单击该超链接显示旋转圆圈(在chromes选项卡中),然后最终将您带到该页面。此时我的加载div出现,最后淡出并显示页面。我希望我的加载div能够立即启动,以便用户知道正在发生的事情。我们的大多数用户都不太精明,所以他们甚至不关注浏览器的旋转轮,他们只是认为页面没有响应(我不怪他们,这可能很棘手)。
我可以做什么这样加载,请稍等... div几乎瞬间出现?或者我可以吗?
答案 0 :(得分:0)
是的,您可以使用Javascript / jQuery和开始结束请求。
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginLoading);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endLoading);
function beginLoading(sender, args) {
var LoadingDiv = $find(LoadingDiv);
if (LoadingDiv!= null) {
LoadingDiv.show();
}
}
function endLoading(sender, args) {
var LoadingDiv = $find(LoadingDiv);
if (LoadingDiv != null) {
LoadingDiv.hide();
}
}