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

Тема в разделе "Lotus - Xpages", создана пользователем pikar, 29 авг 2012.

  1. pikar

    pikar Гость

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

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    А если не пихат вызов второго рефреша в onComplite, а сделать их паралельно?

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

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

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

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


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

    pikar Гость

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.080
    Симпатии:
    300
    первый пост содержит цепочку! - из чего не понятно следующее утверждение
    т.к. второй пост не содержит цепочки вовсе
    вы уж определитесь - как "не работает" ;) (ссылку читали?)
     
  6. pikar

    pikar Гость

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

    pikar Гость

    Простите, а Вы первый пост достаточно внимательно читали? ;)
    За ссылку спасибо. Обязательно поразбираюсь, при первом просмотре не все внял. ;)
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.080
    Симпатии:
    300
    читал, но возможно формулировка не дала мне однозначного восприятия ;) (и судя по второму посту - не только мне)
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.080
    Симпатии:
    300
    ссылку я дал - перехват и посмотреть для отладки - что происходит при вызове
     
Загрузка...

Поделиться этой страницей