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

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

pikar

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

Zeka

Well-known member
01.09.2009
219
0
#2
А если не пихат вызов второго рефреша в onComplite, а сделать их паралельно?

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

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

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#3
(реализация этой функции такова?).
реализация записи такова, что след. асинхронный запрос (по вашему коду) будет тока "в случае" onComplete
я не знаю какие ещё события зареганы в хэндлере..., возможно есть более подходящие, но, как указал Zeka, в цепочку их связывать необязательно


Добавлено: вот http://xpageswiki.com/web/youatnotes/wiki-...or_full_refresh
почемубы не onStart ;) или ковырнуть через dojo (можно даже на init замутить)
 
P

pikar

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

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

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

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#5
первый пост содержит цепочку! - из чего не понятно следующее утверждение
Именно так и не работает
т.к. второй пост не содержит цепочки вовсе
вы уж определитесь - как "не работает" ;) (ссылку читали?)
 
P

pikar

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

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

pikar

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#8
Простите, а Вы первый пост достаточно внимательно читали?
читал, но возможно формулировка не дала мне однозначного восприятия ;) (и судя по второму посту - не только мне)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#9
ссылку я дал - перехват и посмотреть для отладки - что происходит при вызове