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

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

у каждого свой подход. Мне процесс по требованию, после выполнения которого вызывается callback-функция, как-то ближе. А как Вы решали бы через джоб?
...
Рейтинг: 0 / 0
Часики ожидания
    #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
Часики ожидания
    #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
6 сообщений из 6, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Часики ожидания
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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