初始表单请求/重定向显示页面加载

时间:2014-12-18 17:20:01

标签: javascript jquery html asp.net

我正在开发一个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几乎瞬间出现?或者我可以吗?

1 个答案:

答案 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();
    }
}