Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как заставить ajax работать последовательно? / 20 сообщений из 20, страница 1 из 1
23.10.2015, 21:02
    #39085350
Kino36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Всем привет, помогите пожалуйста.
Apex 4.2
Есть модальный регион с кучей айтемов. Вызывается через jquery.dialog. Перед вызовом запускаю ajax, который заряжает в модальном регионе все элементы. Все работало замечательно, пока не потребовалось пару селект листов сделать каскадными от других элементов. Как только я присваю зависимым элементам значения, начинает работать другой ajax, обновляющий селект листы, при этом в эти селект листы существующие значения присвоить нельзя.
Как мне думается, надо перед вызовом моего ajaxа с присваиванием и диалога, зарядить эти зависимые айтемы, чтобы селект листы обновились. Но я не могу сообразить как написать так, чтобы мой ajax запустился после всех этих рефрешей. Более того, если селект лист зависит от двух айтемов, то последовательный запуск
$s('имя1','значение');
$s('имя2,'значение');
дублирует выпадающий список :)

Немного сумбурно получилось, надеюсь на ваше понимание :)
...
Рейтинг: 0 / 0
24.10.2015, 10:37
    #39085480
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Kino36,
1. Архитектура.
- не нужен модальный диалог с кучей. Лучше 2-3 диалога с короткими вопросами. Либо вообще popup LOV
- не только APEX но и весь веб заточен на GET\POST а не на AJAX. Т.е. страничка должна загружаться по урл с параметрами и вообще без AJAX.
- уже есть каскадныен. 2 Select List, но я обычно делаю один, но с группировкой (плагин) или дерево в конце концов.
Т.е. возможно все эти косяки сделали вашу форму малоуправляемым монстром.
Скрин давайте.
...
Рейтинг: 0 / 0
24.10.2015, 13:58
    #39085542
Kino36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Petro123,
скрин сейчас не смогу. Коротко описание - ссылка в репорте, по ссылке в DA запускается JS, который сначала запускает ajax, и затем диалог. Мне нужно до запуска ajax обновить содержимое select листов. Копал в сторону $.when, но что-то с апексом у меня не прошел тестовый пример.

по архитектуре спорить не буду. скажу лишь, что для пользователей ajax гораздо удобнее, особенно когда дело касается тяжелых страниц.
...
Рейтинг: 0 / 0
24.10.2015, 14:01
    #39085544
Kino36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Хм, только что в голову пришло, до запуска JS в DA сделать PLSQL блок с присвоением переменных. Там есть галка wait for result, по идее должно сработать
...
Рейтинг: 0 / 0
24.10.2015, 15:32
    #39085570
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
про мои пункты вверху ты не написал ни слова
Kino36Petro123,
скрин сейчас не смогу. Коротко описание - ссылка в репорте, по ссылке в DA запускается JS, который сначала запускает ajax, и затем диалог.

=== как вызывается диалог не имеет значения

Мне нужно до запуска ajax обновить содержимое select листов. Копал в сторону $.when, но что-то с апексом у меня не прошел тестовый пример.

=== выше 4 способа решения проблемы. Нет AJAX - нет проблемы

по архитектуре спорить не буду. скажу лишь, что для пользователей ajax гораздо удобнее, особенно когда дело касается тяжелых страниц.

=== т.е. твой вопрос: Как мне не делать тяжёлый диалог-модал-страничку? См.выше.


Ты сделал тяжёлый модал-диалог. Который должен висеть очень непродолжительное время для пользователя.
И ты спрашиваешь, как же его убыстрить с помощью AJAX + костыли в виде синхронизации. Т.е. насилования его.
...
Рейтинг: 0 / 0
24.10.2015, 15:42
    #39085573
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Kino36Мне нужно до запуска ajax обновить содержимое select листов.
их нельзя обновить, т.к. они сами на AJAX(зависит от реализации). Т.е. обновляются на клик мышки, например.
Заменил Select List на Super select list и зови программиста для переписывания твоего кода.
...
Рейтинг: 0 / 0
26.10.2015, 09:00
    #39086377
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Kino36,
Проблема у Вас с пониманием синхронности и асинхронности вызовов.
Изучите эти вопросы, и что такое callback функция.
Вопрос ближе к ветке Javascript

Petro123 в очередной раз хочу Вас попросить отвечать по сути, а не как еврей вопросом на вопрос "А зачем вы так сделали? У меня лучше, делай как я." Человек пришел с конкретным вопросом, Вы в очередной раз устроили флуд, из за которого лень перечитывать Ваш бред.
...
Рейтинг: 0 / 0
26.10.2015, 09:24
    #39086386
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
blkangel,
если ты кодировщик, и им и помрёшь, сиди молчи.

авторИзучите эти вопросы, и что такое callback функция.
Вопрос ближе к ветке Javascript
постеснялся бы это писать автору.
...
Рейтинг: 0 / 0
26.10.2015, 09:38
    #39086401
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Petro123,

БРЕДОВОЗ, что ты полезного написал в этой теме? Вали в свою дельфи ветку и морду свою от туда не показывай.
...
Рейтинг: 0 / 0
26.10.2015, 09:40
    #39086403
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
blkangel,
надо же, ты и JS ветке оказывается ничего умного не сказал.
Придётся слать слать модератору за переход на личности.
...
Рейтинг: 0 / 0
26.10.2015, 10:02
    #39086443
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Kino36,

blkangel дело говорит. Но если лень разбираться с яваскриптом, то см. событие after refresh в dynamic action.
...
Рейтинг: 0 / 0
26.10.2015, 10:05
    #39086445
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
SvDevKino36,
blkangel дело говорит. Но если лень разбираться с яваскриптом, то см. событие after refresh в dynamic action.
пусть говорит).
В каждой ветке, сидит 1 процент людей, которые толкаются локтями, когда что-то не понимают.
Добро пожаловать в веб.
...
Рейтинг: 0 / 0
26.10.2015, 10:09
    #39086450
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
SvDevНо если лень разбираться с яваскриптом
а разбираться таки надо. Чтобы потом программист за тобой не помянул хорошим словом)
...
Рейтинг: 0 / 0
26.10.2015, 13:16
    #39086770
Kino36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
blkangelKino36,
Проблема у Вас с пониманием синхронности и асинхронности вызовов.
Изучите эти вопросы, и что такое callback функция.
Вопрос ближе к ветке Javascript

Petro123 в очередной раз хочу Вас попросить отвечать по сути, а не как еврей вопросом на вопрос "А зачем вы так сделали? У меня лучше, делай как я." Человек пришел с конкретным вопросом, Вы в очередной раз устроили флуд, из за которого лень перечитывать Ваш бред.
Наконец-то нормальный человек :) Спасибо за ответ!
я пробовал свой ajax разбить на две части с параметром async:false
в первом запуске запускал обновление выпадающих списков, во втором - заряжал их значениями. Вроде по идее должно было сработать, но не сработало :(
но там был последовательный их запуск. а если действительно вызов второй запихнуть как callback первой... сейчас попробую
...
Рейтинг: 0 / 0
26.10.2015, 13:17
    #39086775
Kino36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
SvDevKino36,

blkangel дело говорит. Но если лень разбираться с яваскриптом, то см. событие after refresh в dynamic action.

я сделал вызов plsql перед запуском своего js, сработало :) js честно ждет, пока селект листы обновятся :)
...
Рейтинг: 0 / 0
26.10.2015, 13:29
    #39086784
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Kino36в первом запуске запускал обновление выпадающих списков, во втором - заряжал их значениями.
заряжаются выпадающие списки в PL во время рендеринга странички. Самим APEX.
Но это для вас IMHO.
Работать будет любой код что вы напишите. Дерзайте.
...
Рейтинг: 0 / 0
27.10.2015, 11:54
    #39087814
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Kino36я пробовал свой ajax разбить на две части с параметром async:false
в первом запуске запускал обновление выпадающих списков, во втором - заряжал их значениями. Вроде по идее должно было сработать, но не сработало :(
но там был последовательный их запуск. а если действительно вызов второй запихнуть как callback первой... сейчас попробую

В инете написано что в jquery 1.8 (Апекс4.2) async:false является устаревшим и надо использовать .done

Код: javascript
1.
2.
3.
4.
5.
6.
7.
$.ajax({
        // Query to server
    }).done(function() {
        // Verify good data
        // Do stuff
        
    });
...
Рейтинг: 0 / 0
28.10.2015, 06:37
    #39088573
AlexAA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Kino36,

Попробуй посмотреть здесь http://hardlikesoftware.com/weblog/2015/04/15/apex-and-asynchronous-ajax/
Вообще, насколько я понимаю, надо воспользоваться возможностью JS вызывать функцию по завершению ajax запроса.
...
Рейтинг: 0 / 0
28.10.2015, 07:58
    #39088596
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Автора давно нет. Он жеж не программирует. Тот кто пишет, в первую очередь декларативно. Например, как он сказал - разбить между DA
Или событие рефреш от самого APEX.
Или вставить DA NULL для синхронизации.
А писать лапшекод на голом JS в последнем случае.
...
Рейтинг: 0 / 0
28.10.2015, 08:11
    #39088601
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить ajax работать последовательно?
Ну и азбука.
AJAX используется в 2 х вариантах:
- самим apex, программист не лезет.
Т.е. модальное окно должно от него быть, от Apex.
- Вами, опять от самого apex вызовом его процесса.
Т.е. текст не такой как у аффтора.
...
Хотя о чём я. Скрина и кода нет. Есть только оффтоп и литературные опусы.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как заставить ajax работать последовательно? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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