Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Часики ожидания / 6 сообщений из 6, страница 1 из 1
23.11.2009, 15:28
    #36326118
pilsner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Часики ожидания
Следующася проблема. Переход со страницы на страницу сопровождается запуском трудоемкой процедуры. Как следствие окно браузера становится белым на секунд 30 или просто ничего не происходит(повторное нажатие кнопки недопустимо), а потом уже загружается страница. Нужно сопровождать этот белый экран предупреждением о запущенном процессе.
...
Рейтинг: 0 / 0
23.11.2009, 15:42
    #36326168
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Часики ожидания
pilsner,

сделайте промежуточную страницу, на которой запускайте трудоёмкую процедуру через AJAX (apex.ajax.ondemand._get), а в обратный вызов добавьте doSubmit или redirect на нужную Вам страницу. На странице создайте HTML-регион, в котором выводите всё, что Вам угодно.
...
Рейтинг: 0 / 0
23.11.2009, 20:29
    #36326978
Часики ожидания
я бы сделал через джоб (dbms_scheduler)
имхо...
...
Рейтинг: 0 / 0
23.11.2009, 21:26
    #36327031
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Часики ожидания
уходящий прочь...,

у каждого свой подход. Мне процесс по требованию, после выполнения которого вызывается callback-функция, как-то ближе. А как Вы решали бы через джоб?
...
Рейтинг: 0 / 0
24.11.2009, 12:08
    #36328003
pilsner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Часики ожидания
Код: plaintext
 2  suPPLer 

Не силен в джаваскриптах. Можете подсказать что подается на вход(например) этой функции и как определяется здесь процесс для запуска...

function saveThisItem(p)
{
var get = new apex.ajax.ondemand();
get.ajax.add(p.id, $v(p));
get.ajax.get();
}

спасибо за внимание
...
Рейтинг: 0 / 0
24.11.2009, 13:43
    #36328314
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Часики ожидания
pilsner,

я так понимаю, это функция для сохранения значения переменной в сессии без перезагрузки страницы. (Очень мне знакомая...) Там нет процесса, просто идёт "пустое" обращение к БД, при котором сохраняется переменная.

Вам может пригодится один из следующих вариантов:
0. Использовать промежуточную страницу. Создать процесс приложения, в котором запускать Вашу длительную процедуру. На странице создать HTML-регион, в котором, например, написать:
Код: plaintext
<h1 style="text-align: center">Выполняется процесс обработки, пожалуйста, подождите.</h1>
В HTML-заголовке страницы добавить:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<script type="text/javascript">
  // Ассинхронный запуск процесса
  function startProcess(processName, callbackFunc) {
    var aget = new apex.ajax.ondemand(processName, callbackFunc);
    // Если необходимо, то добавляем переменные и их значения для процесса.
    // aget.ajax.addParam(varName, varValue);
    // Если необходимо, то добавляем переменные-элементы страницы и их значения для процесса.
    // aget.ajax.add(varName, varValue);
    aget._get();
  }
  // То, что выполнится по окончанию процесса.
  function onProcessEnd() {
    var l_s = p.readyState;
			if(l_s ==  1 ||l_s ==  2 ||l_s ==  3 ){
			}else if(l_s ==  4 ){
  // Например, submit и переход по созданному бранчу на определённую страницу
				doSubmit();
			}else{return false;}
  }
</script>
Дальше, если Вы используете jQuery в приложении, добавьте там же:
Код: plaintext
1.
2.
3.
4.
<script type="text/javascript">
  $(document).ready(function(){
    startProcess("YOUR_PROCESS_NAME", onProcessEnd);
  });
</script>
Если нет - измените HTML Body Attribute у страницы, добавив:
Код: plaintext
startProcess("YOUR_PROCESS_NAME", onProcessEnd);

1. Если процедура длительная, но не влияет на дальнейшую работу пользователя, а просто должна выполнится, то, как уже сказал уходящий прочь... , используйте джоб. Только я бы рекомендовал работать с ними через APEX_PLSQL_JOB .
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Часики ожидания / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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