|
|
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Всем привет, помогите пожалуйста. Apex 4.2 Есть модальный регион с кучей айтемов. Вызывается через jquery.dialog. Перед вызовом запускаю ajax, который заряжает в модальном регионе все элементы. Все работало замечательно, пока не потребовалось пару селект листов сделать каскадными от других элементов. Как только я присваю зависимым элементам значения, начинает работать другой ajax, обновляющий селект листы, при этом в эти селект листы существующие значения присвоить нельзя. Как мне думается, надо перед вызовом моего ajaxа с присваиванием и диалога, зарядить эти зависимые айтемы, чтобы селект листы обновились. Но я не могу сообразить как написать так, чтобы мой ajax запустился после всех этих рефрешей. Более того, если селект лист зависит от двух айтемов, то последовательный запуск $s('имя1','значение'); $s('имя2,'значение'); дублирует выпадающий список :) Немного сумбурно получилось, надеюсь на ваше понимание :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 21:02 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Kino36, 1. Архитектура. - не нужен модальный диалог с кучей. Лучше 2-3 диалога с короткими вопросами. Либо вообще popup LOV - не только APEX но и весь веб заточен на GET\POST а не на AJAX. Т.е. страничка должна загружаться по урл с параметрами и вообще без AJAX. - уже есть каскадныен. 2 Select List, но я обычно делаю один, но с группировкой (плагин) или дерево в конце концов. Т.е. возможно все эти косяки сделали вашу форму малоуправляемым монстром. Скрин давайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2015, 10:37 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Petro123, скрин сейчас не смогу. Коротко описание - ссылка в репорте, по ссылке в DA запускается JS, который сначала запускает ajax, и затем диалог. Мне нужно до запуска ajax обновить содержимое select листов. Копал в сторону $.when, но что-то с апексом у меня не прошел тестовый пример. по архитектуре спорить не буду. скажу лишь, что для пользователей ajax гораздо удобнее, особенно когда дело касается тяжелых страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2015, 13:58 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Хм, только что в голову пришло, до запуска JS в DA сделать PLSQL блок с присвоением переменных. Там есть галка wait for result, по идее должно сработать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2015, 14:01 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
про мои пункты вверху ты не написал ни слова Kino36Petro123, скрин сейчас не смогу. Коротко описание - ссылка в репорте, по ссылке в DA запускается JS, который сначала запускает ajax, и затем диалог. === как вызывается диалог не имеет значения Мне нужно до запуска ajax обновить содержимое select листов. Копал в сторону $.when, но что-то с апексом у меня не прошел тестовый пример. === выше 4 способа решения проблемы. Нет AJAX - нет проблемы по архитектуре спорить не буду. скажу лишь, что для пользователей ajax гораздо удобнее, особенно когда дело касается тяжелых страниц. === т.е. твой вопрос: Как мне не делать тяжёлый диалог-модал-страничку? См.выше. Ты сделал тяжёлый модал-диалог. Который должен висеть очень непродолжительное время для пользователя. И ты спрашиваешь, как же его убыстрить с помощью AJAX + костыли в виде синхронизации. Т.е. насилования его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2015, 15:32 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Kino36Мне нужно до запуска ajax обновить содержимое select листов. их нельзя обновить, т.к. они сами на AJAX(зависит от реализации). Т.е. обновляются на клик мышки, например. Заменил Select List на Super select list и зови программиста для переписывания твоего кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2015, 15:42 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Kino36, Проблема у Вас с пониманием синхронности и асинхронности вызовов. Изучите эти вопросы, и что такое callback функция. Вопрос ближе к ветке Javascript Petro123 в очередной раз хочу Вас попросить отвечать по сути, а не как еврей вопросом на вопрос "А зачем вы так сделали? У меня лучше, делай как я." Человек пришел с конкретным вопросом, Вы в очередной раз устроили флуд, из за которого лень перечитывать Ваш бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 09:00 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
blkangel, если ты кодировщик, и им и помрёшь, сиди молчи. авторИзучите эти вопросы, и что такое callback функция. Вопрос ближе к ветке Javascript постеснялся бы это писать автору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 09:24 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Petro123, БРЕДОВОЗ, что ты полезного написал в этой теме? Вали в свою дельфи ветку и морду свою от туда не показывай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 09:38 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
blkangel, надо же, ты и JS ветке оказывается ничего умного не сказал. Придётся слать слать модератору за переход на личности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 09:40 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Kino36, blkangel дело говорит. Но если лень разбираться с яваскриптом, то см. событие after refresh в dynamic action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 10:02 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
SvDevKino36, blkangel дело говорит. Но если лень разбираться с яваскриптом, то см. событие after refresh в dynamic action. пусть говорит). В каждой ветке, сидит 1 процент людей, которые толкаются локтями, когда что-то не понимают. Добро пожаловать в веб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 10:05 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
SvDevНо если лень разбираться с яваскриптом а разбираться таки надо. Чтобы потом программист за тобой не помянул хорошим словом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 10:09 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
blkangelKino36, Проблема у Вас с пониманием синхронности и асинхронности вызовов. Изучите эти вопросы, и что такое callback функция. Вопрос ближе к ветке Javascript Petro123 в очередной раз хочу Вас попросить отвечать по сути, а не как еврей вопросом на вопрос "А зачем вы так сделали? У меня лучше, делай как я." Человек пришел с конкретным вопросом, Вы в очередной раз устроили флуд, из за которого лень перечитывать Ваш бред. Наконец-то нормальный человек :) Спасибо за ответ! я пробовал свой ajax разбить на две части с параметром async:false в первом запуске запускал обновление выпадающих списков, во втором - заряжал их значениями. Вроде по идее должно было сработать, но не сработало :( но там был последовательный их запуск. а если действительно вызов второй запихнуть как callback первой... сейчас попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 13:16 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
SvDevKino36, blkangel дело говорит. Но если лень разбираться с яваскриптом, то см. событие after refresh в dynamic action. я сделал вызов plsql перед запуском своего js, сработало :) js честно ждет, пока селект листы обновятся :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 13:17 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Kino36в первом запуске запускал обновление выпадающих списков, во втором - заряжал их значениями. заряжаются выпадающие списки в PL во время рендеринга странички. Самим APEX. Но это для вас IMHO. Работать будет любой код что вы напишите. Дерзайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 13:29 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Kino36я пробовал свой ajax разбить на две части с параметром async:false в первом запуске запускал обновление выпадающих списков, во втором - заряжал их значениями. Вроде по идее должно было сработать, но не сработало :( но там был последовательный их запуск. а если действительно вызов второй запихнуть как callback первой... сейчас попробую В инете написано что в jquery 1.8 (Апекс4.2) async:false является устаревшим и надо использовать .done Код: javascript 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 11:54 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Kino36, Попробуй посмотреть здесь http://hardlikesoftware.com/weblog/2015/04/15/apex-and-asynchronous-ajax/ Вообще, насколько я понимаю, надо воспользоваться возможностью JS вызывать функцию по завершению ajax запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 06:37 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Автора давно нет. Он жеж не программирует. Тот кто пишет, в первую очередь декларативно. Например, как он сказал - разбить между DA Или событие рефреш от самого APEX. Или вставить DA NULL для синхронизации. А писать лапшекод на голом JS в последнем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 07:58 |
|
||
|
Как заставить ajax работать последовательно?
|
|||
|---|---|---|---|
|
#18+
Ну и азбука. AJAX используется в 2 х вариантах: - самим apex, программист не лезет. Т.е. модальное окно должно от него быть, от Apex. - Вами, опять от самого apex вызовом его процесса. Т.е. текст не такой как у аффтора. ... Хотя о чём я. Скрина и кода нет. Есть только оффтоп и литературные опусы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 08:11 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=39086450&tid=1874806]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 415ms |

| 0 / 0 |
