Отображение .gif и продолжение воспроизведения во время поездки на сервер - asp .net - PullRequest
4 голосов
/ 08 декабря 2011

У меня есть кнопка, для которой я подключил обработчик события clientClick и обработчик события Click (сервер). На clientClick я хотел бы отобразить анимированный GIF, и я бы хотел, чтобы это продолжалось во время поездки на сервер. В данный момент gif отображается на мгновение, затем его анимация приостанавливается, а затем страница перезагружается. Мне бы хотелось, чтобы изображение воспроизводилось до тех пор, пока страница не будет перезагружена.

Как вы, вероятно, можете догадаться - весь смысл в том, чтобы реализовать функцию «таймера яиц», чтобы пользователи знали о том, что что-то происходит.

Большое спасибо,

Dan

Ответы [ 3 ]

0 голосов
/ 09 декабря 2011

Поскольку вы работаете с asp.net, я предполагаю, что вы не реализуете много JavaScript или Ajax.

Существуют плагины AJAX для ASP.NET, и вы можете использовать контейнер обновления (не уверен на 100%, так ли это называется) и просто подключиться к событиям в нем.

Это, наверное, самый простой способ. Вы также можете прочитать о jQuery, они предоставляют метод AJAX, который действительно прост в использовании. Конечно, вам придется предоставить метод на сервере, который выполняет обработку и возвращает ответ. Затем, как только вы получите ответ (метод для этого легко доступен из метода jQuery AJAX), вставьте содержимое на страницу и отключите анимацию.

Если это звучит как много, просто перейдите AJAX в ASP.NET (ищите AJAX Control Toolkit).

0 голосов
/ 14 мая 2012

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

Поместите анимированный GIF-файл в верхнюю часть второй страницы, используйте Response.Flush, чтобы отправить html-файл обратно в браузер (это будет отображать и воспроизводить gif-файл). Когда вы закончите обработку Resoponse.Write фрагмент javascript, чтобы перенаправить браузер на последнюю страницу в процессе.

0 голосов
/ 08 декабря 2011

Вы должны использовать панель обновления, а со стороны сервера вы должны зарегистрировать этот document.all["slowScreenSplash"].style.display = "none"; код.

Я проиллюстрировал синтаксис, как регистрировать JS со стороны сервера, если вы используете панель обновления.

Это тест по сравнению с примером выполнения.

<DIV ID="slowScreenSplash" STYLE="position:absolute;z-index:5;top:40%;left:15%;" align="center"> Please wait whilst your request is being processed...
</DIV>

вызвать это событие на кнопке события clientclick.

    document.all["slowScreenSplash"].style.display = "none";

string scriptstring = "alert('Welcome');";  
ScriptManager.RegisterStartupScript(this, this.GetType(), "alertscript", scriptstring, true);  
...