Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как показать пользователю, что в данный момент идет отработка запроса? / 14 сообщений из 14, страница 1 из 1
23.04.2012, 16:37
    #37766571
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
Обычный отчет с параметрами и кнопкой. На after submit висит процесс, ктр вызывает запуск процедуры, формирующей отчет в заданном формате и кладущей его в специальную табличку в БД, откуда он на Before Header забирается и отдается пользователю.
Можно ли и как в процессе формирования отчета(отработки процедуры) информировать пользователя о том, что о нем не забыли и его запрос выполняется(часики, предупреждение итп...). Может кто-то встречал реализации данной фичи.
...
Рейтинг: 0 / 0
23.04.2012, 17:09
    #37766693
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
...
Рейтинг: 0 / 0
23.04.2012, 19:30
    #37766966
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
Спасибо, буду по 4му документашку читать))
...
Рейтинг: 0 / 0
23.04.2012, 21:16
    #37767106
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
С кнопкой понятно и сразу возник вопрос, а как запустить dynamic action по сабмиту с определенным request.
Т.е. я нажимаю кнопку, по которой вызывается проверочная javascript-функция, ктр в итоге сабмитит страницу с определенным реквестом. Как пеехватить этот реквест и запустить dynamic action?
...
Рейтинг: 0 / 0
24.04.2012, 13:57
    #37768175
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
deniska80Как пеехватить этот реквест и запустить dynamic action?

Зачем такие сложности? Добавьте очередной True Action в тот динамик, который запускается перед submit и устанавливает необходимый request.
...
Рейтинг: 0 / 0
24.04.2012, 14:50
    #37768293
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
Честно говоря, не понял, что имеется в виду под этим.
Пробовал еще следующий способ:

Header
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
function html_Submit_Progress(){  
$x_Show('AjaxLoading');  
window.setTimeout('$s("AjaxLoading",$x("AjaxLoading").innerHTML)', 100);  
doSubmit('check');  
}
function check(){
<<Проверка всего>>
function html_Submit_Progress();  
}



Footer

Код: sql
1.
2.
3.
4.
5.
<style>   
  #AjaxLoading{padding:5px;font-size:18px;width:300px;text-align:center;left:30%;top:30%;position:absolute;border:0px solid #666;background-color:transparant;}  
</style>  
<div id="AjaxLoading" style="display:none;">..Грузимсо..
<img src="#WORKSPACE_IMAGES#cada.gif" id="wait" /></div> 



Клик на кнопку вызывает функцию check()
После сабмита на выполнение запускается процесс, формирующий какое-то время отчет и кладущий его в таблицу.

На Before Header вызывается процедура wpg_docload, возвращающая отчет пользователю.
В данной интерпретации все работает,но картинка с надписью "Грузимсо" висит до следующей перезагрузки страницы(отчет уже выгружен), а нужно, чтобы убиралась по завершению этого "долгого" процесса. Ну или, чтобы в как в примере во время процесса вызывался затемняющий страницу process bar.

Без процесса, выгружающего пользователю отчет на Before Header все нормально работает. Но интереснее, конечно, вариант с затемнением страницы, но я не знаю, как его вызвать из javascript и как остановить после выполнения.
...
Рейтинг: 0 / 0
24.04.2012, 17:31
    #37768875
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
Решил проблемку. Громоздковато, но работает.
...
Рейтинг: 0 / 0
25.04.2012, 19:32
    #37771302
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
Возникла новая проблема...
Старую решил(казалось бы...и счастье действительно было так близко...)
поставив в Footer код

Код: sql
1.
2.
3.
4.
5.
6.
7.
<script>
 if ('&REQUEST.&P3_ITEM.'=='XXXYY') 
  {
      var url;
  url = 'f?p=&APP_ID.:33:&SESSION.:proverka:::';
  html_PopUp(url,'Yo',700,400,1,1);}
</script>



В итоге после отработки процесса страничка перегружалась, картинка с имитацией выполнения процесса исчезала и открывалось окошко в котором грузилась страничка, на которую я повесил в Before Header запрос на нужный файл из таблицы с блобами.
В итогу файлк нормально открывался...открывался в современных браузерах(фф10, хром и ие9), но стоило проверить на старом 6-8 ie и кирдык. Новое окошко появляется на долю секунды и исчезает в неизвестном направлении. Если убрать из Before Header процесс, выгружающий файлик из таблицы, то всплывающее окно без проблем открывается...
Предложить пользователям переход на новые версии браузеров не катит...
...
Рейтинг: 0 / 0
25.04.2012, 19:44
    #37771321
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
deniska80Предложить пользователям переход на новые версии браузеров не катит...

Чего это вдруг? Официально IE6 не поддерживается в APEX 4. Гугл, кстати, тоже помахал рукой IE6.
...
Рейтинг: 0 / 0
25.04.2012, 20:24
    #37771344
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
Дело в том, что и ie 7-8 точно так же отработали на других компах. Только 9ка нормально справлялась...(

Попробовал вместо
Код: sql
1.
2.
3.
4.
{
      var url;
  url = 'f?p=&APP_ID.:33:&SESSION.:proverka:::';
  html_PopUp(url,'Yo',700,400,1,1);}



поставить
doSubmit('REQUEST') и на REQUEST создать бранч с перенаправлением на страницу с отчетом, НО тут перестал в некоторых браузерах на этой странице отрисовываться фон...
...
Рейтинг: 0 / 0
26.04.2012, 01:39
    #37771487
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
deniska80,

я не совсем понимаю, зачем Вы раскидываете JavaScript-код по странице, учитывая, что для этого в APEX 4 есть специально предназначенные места, позволяющие избегать конфликтов:
- Dynamic Actions;
- секция JavaScript в свойствах страницы.

Что такое <<Проверка всего>>, и почему это происходит в JS-коде?

Попробуйте описать словами проблему, а не Ваше решение: нужно, чтобы А, потом Б, потом В.

Ещё раз: Вы можете создать динамик before submit, который по клику на Вашу кнопку будет выводить индикатор. Пользователь нажимает кнопку, индикатор выводится, страница обрабатывается. На странице, куда происходит переход после обработки, можно вставить в JavaScript→Execute When Page Loads открытие всплывающего окна с ссылкой на сформированный файл.
...
Рейтинг: 0 / 0
26.04.2012, 09:31
    #37771648
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
suPPLerЧто такое <<Проверка всего>>, и почему это происходит в JS-коде?

На сервере приложений задеплоено java-приложение, работающее по типу captcha и в js через ajax идет проверка правильности ввода символов пользователем.

suPPLerПопробуйте описать словами проблему, а не Ваше решение: нужно, чтобы А, потом Б, потом В.

Проблема элементарная. Пользователю нужно выгрузить отчет в виде файла на основании выбранных параметров с проверкой через captcha. Обработка запроса может занять какое-то время и чтобы пользователь был уверен, что запрос обрабатывается, нужно на время отработки запроса, например, вывести картинку(гифку), а после выполнения убрать(скрыть) ее.

suPPLerЕщё раз: Вы можете создать динамик before submit, который по клику на Вашу кнопку будет выводить индикатор. Пользователь нажимает кнопку, индикатор выводится, страница обрабатывается. На странице, куда происходит переход после обработки
Как убрать его после обработки?))

suPPLer На странице, куда происходит переход после обработки, можно вставить в JavaScript→Execute When Page Loads открытие всплывающего окна с ссылкой на сформированный файл.
Да, уже думал об этом, но это крайний вариант,т.к. неудобно для пользователя.
1 Ему два раза придется нажимать кнопку "Получить результаты": сначала на главной форме, потом на всплывающем окне.
2 Это всплывающее окно потом так и останется висеть...

Теперь смотрю в строну on-demand application процессов. Не хотелось бы переделывать приложение, но если получится-придется.
...
Рейтинг: 0 / 0
26.04.2012, 13:23
    #37772242
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
По поводу всплывающих окон. Нашел 3 ф-ции
html_PopUp();
window.open();
popupURL();

Первая замечательно работает в ФФ,IE=9,CHROME.(Работает и с выгрузкой по кнопке в окошке и автоматически Before Header). Регулировки размера окна работают.
В ИЕ<9 не работает.

Две вторые работают одинаково с выгрузкой по кнопке в этом окне. Так же в нормальных браузерах(ie>8 и все остальные) срабатывают и на автомат выгрузку. НО нигде не работает задание размеров popup-окна...
...
Рейтинг: 0 / 0
26.04.2012, 13:31
    #37772271
deniska80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как показать пользователю, что в данный момент идет отработка запроса?
Извиняюсь, немного мозгг перегрелся - window.open изменяет размеры везде
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как показать пользователю, что в данный момент идет отработка запроса? / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]