• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Частичное Обновление (ajax)

  • Автор темы pikar
  • Дата начала
P

pikar

Доброго времени суток!
Не сталкивался ли кто с такой ситуацией. Имеется несколько полей для частичного обновления (пусть вычисляемые поля или рипиты с кодом), которые являются реализациями одного и того же элемента в XPage (т.е. лежат в рипите). Нужно выполнить их частичное обновление из клиентского кода, причем несколько и одновременно, а не последовательно. Последовательно - решаемо так:
XSP.partialRefreshGet(id1,{onComplete: function(){XSP.partialRefreshGet(id2,{onComplete: ... })}}).
А вот одновременно - не получается. Последовательное применение partialRefresh не работает, т.к. если первое обновление не завершилось, то второе просто не стартует (реализация этой функции такова?).
Попытался воспользоваться другими функциями для отправки ajax - запросов, одновременно работает, но часто вываливает внутреннюю ошибку сервера. Вопрос в том, можно ли все-таки запустить корректно это самое обновление параллельно с получением корректных результатов?
 
Z

Zeka

А если не пихат вызов второго рефреша в onComplite, а сделать их паралельно?

XSP.partialRefreshGet(id1,{});
XSP.partialRefreshGet(id2,{});
XSP.partialRefreshGet(id3,{});

А если ошибка, то в onError вызвать неотработавший рефрешь ещё раз.

ПС: сам не пробывал так делать :)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
(реализация этой функции такова?).
реализация записи такова, что след. асинхронный запрос (по вашему коду) будет тока "в случае" onComplete
я не знаю какие ещё события зареганы в хэндлере..., возможно есть более подходящие, но, как указал Zeka, в цепочку их связывать необязательно


Добавлено: вот
почемубы не onStart ;) или ковырнуть через dojo (можно даже на init замутить)
 
P

pikar

А если не пихат вызов второго рефреша в onComplite, а сделать их паралельно?

XSP.partialRefreshGet(id1,{});
XSP.partialRefreshGet(id2,{});
XSP.partialRefreshGet(id3,{});

А если ошибка, то в onError вызвать неотработавший рефрешь ещё раз.

ПС: сам не пробывал так делать ;)
Именно так и не работает. Т.е. первая отрабатывает, а остальные нет. Если первая успеет отработать, но пойдет следующая, если нет, просто ничего не делает. Ошибки нет, во второй onStart не отрабатывается даже.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
первый пост содержит цепочку! - из чего не понятно следующее утверждение
Именно так и не работает
т.к. второй пост не содержит цепочки вовсе
вы уж определитесь - как "не работает" ;) (ссылку читали?)
 
P

pikar

реализация записи такова, что след. асинхронный запрос (по вашему коду) будет тока "в случае" onComplete
я не знаю какие ещё события зареганы в хэндлере..., возможно есть более подходящие, но, как указал Zeka, в цепочку их связывать необязательно

почемубы не onStart ;) или ковырнуть через dojo (можно даже на init замутить)
если не в цепочку - не работает, проблема только в этом.
onStart? ну это можно попробовать.
А через dojo... я jQuery пользуюсь, так вот как и писал, обновления запускаются, периодически внутренняя ошибка сервера (ошибки в серверном javascript), если запускать параллельно. Если по очереди, все нормально (тот же самый серверный JS без ошибок). У меня объяснение только одно: проблема в том, что обновляется фактически один и тот же компонент при нескольких одновременных запросах.
 
P

pikar

первый пост содержит цепочку! - из чего не понятно следующее утверждение т.к. второй пост не содержит цепочки вовсе
вы уж определитесь - как "не работает" ;) (ссылку читали?)
Простите, а Вы первый пост достаточно внимательно читали? ;)
За ссылку спасибо. Обязательно поразбираюсь, при первом просмотре не все внял. ;)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
Простите, а Вы первый пост достаточно внимательно читали?
читал, но возможно формулировка не дала мне однозначного восприятия ;) (и судя по второму посту - не только мне)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
ссылку я дал - перехват и посмотреть для отладки - что происходит при вызове
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!