2016-03-21 2 views
0

Я пытаюсь, чтобы между страницами моей веб-формы отображался значок загрузки. Некоторые из страниц требуют времени для загрузки из-за вызовов веб-служб.Показать значок загрузки во время Page.Redirect

Я пытаюсь реализовать загрузчик для загрузки при переадресации этой страницы, пока страница не будет готова.

Я пытался добиться этого с помощью простого:

Jquery 
$(window).load(function() { 
    $('#LoadingPanel').fadeOut(2000); 
}) 

html 
<div id="LoadingPanel" style="background-image: url(Images/loading_spinner.gif); background-position: center center; background-repeat: no-repeat; background-size: 100px 100px; height: 100px; width: 100px; position: fixed; z-index: 1000; left: 50%; top: 50%; margin: -25px 0 0 -25px"> 
</div> 

Единственная проблема состоит в том, что это на самом деле не появляются до одной минуты в загрузке страницы.

Является ли то, что я пытаюсь достичь, возможно? Любое руководство будет высоко оценено.

UPDATE

Page1: На первой странице пользователь заполняет форму, а затем попадает на кнопку, которая сохранит запись пользователя, а затем перенаправляет на другую страницу.

Protected Sub Btn_BestBuy_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Btn_BestBuy.ServerClick 

    StoreDetails(sender, e) 
    Response.Redirect("Plugin.aspx?step=4&results=best&stdid=" & STDID.Value & "&stid=" & STID.Value & IIf(Session("sid") <> "", "&sid=" & Session("sid"), "")) 

End Sub 

StoreDetails() Сохраняет запись пользователя в массив, а затем перемещает массив к сессии:

Application("DETAILS_ARRAY") = DetailsArray 

страница Page2: Одна второй страница страницы действительно вошел вызов веба-служба, используя контактную информацию на первой странице:

If Request.QueryString("results") = "best" Then 

    GetSchemes(Service.PublicBestType.ALL) 

End If 

GetSchemes называет веб-службы и возвращает все данные в сессию, которая связана с сеткой ракурса в нижней части загрузки страницы.

Похоже, что происходит, когда страница начинает связывать данные с сетками, появляется значок Загрузка.

+0

Попробуйте $ (document) .ready (function() {}) – Alexis

+0

У меня есть, он делает то же самое по существу. Значок загрузки не отображается достаточно рано, но уходит в нужное время. –

+0

Ваш метод кажется хорошим. ваш div находится в начале вашей страницы? – Alexis

ответ

0

Как вы пишете в своем комментарии

Значок должен появиться при нажатии на кнопку. Он должен оставаться видимым во время перенаправления страницы и, наконец, скрываться после того, как вторая страница будет готова.

Вы загружаете полную страницу после завершения вашего интернет-вызова?

Почему вы не предоставляете свой загрузочный экран «display: none» и показываете загрузочный div в событии с нажатием кнопки?

jQuery(document).on("click", "#yourBtn", function(event) { 
    jQuery("#LoadingPanel").show(); 
    //your webservice call 
}); 

И когда вторая страница загружена, LoadPanel находится в ней базовый статус -> дисплей: нет;

+0

Звонок веб-службы выполняется во время начальной загрузки страницы второй страницы и выполняется через код позади. Он возвращает несколько тысяч записей, поэтому требуется некоторое время. Когда кнопка нажата, она сохраняет объекты в веб-форме с помощью простой функции, а затем начинает page.redirect на вторую страницу. –

+0

Хорошо, я неправильно понял этот сценарий. Не могли бы вы написать немного больше своего кода? Может быть, есть небольшой провал, который я не вижу сейчас. Возможно ли это сделать обойти AJAX? Итак, вы загружаете вторую страницу, показываете загрузочный экран, а затем вызываете свой веб-сервис через ajax, а после вызова ajax вы отключите экран загрузки –

+0

Нет проблем, я обновил вопрос. –

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