2014-12-18 3 views
0

Я работаю над проектом веб-формы 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> 

класс = диалог определяется как таковой для DIV:

.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(). Мне нужно смоделировать какое-то время, а затем я сделаю divBase div видимым (используя свойство opacity) ... Это, похоже, работает нормально, но при первоначальной подсказке гиперссылки на клики/отправления, которые перенаправляют пользователя на другую страницу, загрузка не отображается сразу же ... достаточно времени, чтобы показать запутанность пользователя.

Например, если у меня есть простая гиперссылка (где на этой странице есть БОЛЬШИЕ данные базы данных) ... Первоначальный щелчок этой гиперссылки показывает вращающийся круг (на вкладке «Хромы»), а затем, наконец, приведет вас к этой странице. В этот момент появляется мой загрузочный div и, наконец, исчезает, и страница отображается. Я сразу же надеялся, что мой загрузочный div может появиться, чтобы пользователь знал, что что-то происходит. Большинство наших пользователей не слишком сообразительны в Интернете, поэтому они даже не обращают внимания на вращающееся колесо браузера, они просто думают, что страница не отвечает (я не виню их, это может быть сложно).

Что я могу сделать, чтобы эта загрузка, пожалуйста, подождите ... div появляется почти мгновенно? Или я могу?

ответ

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

+0

Что LoadingDiv сделать я передать ему мой Див идентификатор в виде строки? – JonH

+0

Я бросил LoadingDiv там в качестве заполнителя, но на самом деле это может быть любой идентификатор элемента, в котором вы хотите контролировать. Так что, возможно, у вас может быть загрузочное изображение (например, вращающееся GIF) шоу и спрятать его по запросу. – SShields

+0

Это на моем сайте.master или на каждой странице? – JonH

Смежные вопросы