Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ProgressBar и Servlet, помогите создать прогрес бар 
:(
    Опции темы
SuperOrange
  Дата 8.7.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.5.2007

Репутация: нет
Всего: нет



Помогите решить задачу. 
У меня есть сервлет который читает файл/веб-страницу и обрабатывает содержимое. Иногда это бывают очень большие файл или очень медленные сервера. Необходимо сделать ProgressBar который во время обработки данных будет отображать процесс. 
Помогите создать кот который во время обработки данных будет показывать этот бар а по завершении его скрывать. Очень важно, очень прошу. 

P.S. возможно даже это будут разные сервлеты. Обработка и прогрес бар в одном, по окончании обработки вызывается второй сервлет который выведет на экран результат.


PM MAIL   Вверх
garbuz
Дата 8.7.2009, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Может тут лучше javascript подойдет? Примеров, я уверен, полно.

Добавлено через 2 минуты и 47 секунд
Вот тут пример с использованием jsp http://www.onjava.com/pub/a/onjava/2003/06...ogressbars.html
PM MAIL   Вверх
SuperOrange
Дата 9.7.2009, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.5.2007

Репутация: нет
Всего: нет



Цитата(garbuz @  8.7.2009,  18:02 Найти цитируемый пост)
Вот тут пример с использованием jsp http://www.onjava.com/pub/a/onjava/2003/06...ogressbars.html 

Это по идее не сильно подходит. Мне надо в процессе выполнения сервлета изменять статус прогресбара. А на JSP памоему это несильно получится. Или я ошибаюсь ?
PM MAIL   Вверх
COVD
Дата 9.7.2009, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Ваш сервлет, выполняющий длительное задание, скорее всего сам не может знать наверняка, какой процент работы сделан, потому что это связано с загрузкой данных из интернета. Поэтому проще показывать песочные часы или бесконечный прогресс-бар без указания процентов. А это действительно лучше делать на js.  
PM MAIL   Вверх
Samotnik
Дата 9.7.2009, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



SuperOrange, очень вам не советую считать время, когда запрос будет обнаружен. Это очень трудно.
Лучше всего - перед отправкой запроса просто вывести на экран анимацию прогресс бара (их в нете много найдете  smile ) а затем, когда запрос обработается и придет ответ -  скрыть этот  *.gif как правильно сказал garbuz,  
Цитата(garbuz @  8.7.2009,  18:02 Найти цитируемый пост)
тут лучше javascript


PM MAIL   Вверх
SuperOrange
Дата 9.7.2009, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.5.2007

Репутация: нет
Всего: нет



Хорошо, перефразирую задачу. Допустим у меня есть страница с анимацией прогрес бара.
А как мне тогда сделать так, пусть по клику у меня открывается страничка с анимацией, но мне нада ещё в фоне запустит сервлет с обратоткой данных и по их завершению перейти на страничку другова сервлета который и отобразит  результат операции. Как в JS я смогу узнать что обработка закончилась?

P.S. теоретически я понимаю что данные я могу положить в сессию, но вот как сообщить страничке с анимацией что нада заканчивать ?
PM MAIL   Вверх
garbuz
Дата 9.7.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



С сервлета, который выполняет какую-то работу и когда он ее закончит посылаете какой-нибудь флаг на страницу с анимацией, на странице ставите условие, если флаг = тру, тогда редирект на другой сервлет. Ну вот как-то так наверно.
PM MAIL   Вверх
SuperOrange
Дата 9.7.2009, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.5.2007

Репутация: нет
Всего: нет



Не совсем понял вас, у меня например есть страница с анимацией, простая ХТМЛ + JS для анимации, допустим я отображаю её, как мне теперь запустить сервлет обработки и по окончанию обработки перейти на \index.jsp


PM MAIL   Вверх
SuperOrange
Дата 9.7.2009, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.5.2007

Репутация: нет
Всего: нет



Голова кипит, не догоняю. Помоги решить, лучше кодом.
Есть основная страница: index.jsp в которой вводятся данные, и которая выводит результат обработки этих данных. Вот код формы.
Код

        <form name="MainForm" action="URLServlet" method=post>
        <center>
            <input type="text" name="MyURL" value=<%= SessionMyURL %> />
            <input type="submit"/>
        </center>
        </form>
        <hr>

Далее выполняется сервлет URLServlet в котором идёт обработка данных, по окончании обработки снова вызывается index.jsp и в зависимости от параметра под формой выводит обработынные данные.

Мне необходимо что бы, после воода данных, загружалась обычная HTML страница (уже есть), на которой будет JavaScript, что то типа "Ожидайте, идёт обработка" пока будет выполнятся URLServlet , и по окончании выполнения URLServlet  снова загружатся index.jsp. 

Суть в том что у меня не получается сделать так что бы пока идёт обработка отображалось "Ожидайте, идёт обработка".

Помогите кодом решить проблему.
PM MAIL   Вверх
kez
Дата 9.7.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2009

Репутация: нет
Всего: нет



почему не сделать ажаксом?
самое элегантное решение на мой взгляд. и не придется уходить никуда с этой страницы.
PM MAIL   Вверх
SuperOrange
Дата 9.7.2009, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.5.2007

Репутация: нет
Всего: нет



Цитата(kez @  9.7.2009,  17:26 Найти цитируемый пост)
почему не сделать ажаксом?
самое элегантное решение на мой взгляд. и не придется уходить никуда с этой страницы. 

Нету опыта на AJAX, а те кто его знает, не могут помоч кодом.
PM MAIL   Вверх
DimW
Дата 10.7.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 3
Всего: 44



SuperOrange, не так давно пришлось изобразить нечно подобное.
делал так:
1) на странице ввода данных ставил div в котрый помещал анимированный gif с прогрес-баром, div поумолчанию скрытый т.е. style="display:none;".
2) перед сабмитом формы на сервлет менял стиль у дива на style="display:block;".
Код

function doSubmit()
{
     document.getElementById('div').style.display='block';
     document.form.action='URLServlet';
     document.form.submit();
}


PM MAIL ICQ   Вверх
SuperOrange
Дата 10.7.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.5.2007

Репутация: нет
Всего: нет



Цитата(DimW @ 10.7.2009,  14:41)
SuperOrange, не так давно пришлось изобразить нечно подобное.
делал так:
1) на странице ввода данных ставил div в котрый помещал анимированный gif с прогрес-баром, div поумолчанию скрытый т.е. style="display:none;".
2) перед сабмитом формы на сервлет менял стиль у дива на style="display:block;".
Код

function doSubmit()
{
     document.getElementById('div').style.display='block';
     document.form.action='URLServlet';
     document.form.submit();
}

Так, а разве если перед сабмитом сделать display:block; а потом сабмит, я успею увидеть этот блок ?
PM MAIL   Вверх
DimW
Дата 13.7.2009, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 3
Всего: 44



Цитата(SuperOrange @  10.7.2009,  17:03 Найти цитируемый пост)
Так, а разве если перед сабмитом сделать display:block; а потом сабмит, я успею увидеть этот блок ?

да.
PM MAIL ICQ   Вверх
SuperOrange
Дата 14.7.2009, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.5.2007

Репутация: нет
Всего: нет



Хорошо, то есть 

Форму я описываю так ?
Код

<script language="JavaScript">
function doSubmit()
{
     document.getElementById('div').style.display='block';
     document.form.action='URLServlet';
     document.form.submit();
}
</script>

  <form name="MainForm" action="doSubmit()" method=post>


Так?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.