JSF Задержка рендеринга компонента

Я использую JSF/2.0 с ванильным Mojarra.

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

Я думаю о расширении существующего компонента JSF для этого. Как лучше всего это сделать?

JG


person hawkeye    schedule 03.03.2011    source источник


Ответы (1)


Вызов должен исходить со стороны клиента, поскольку стандартный HTTP-протокол не позволяет стороне сервера передавать данные на сторону клиента. Начните с функции JavaScript setTimeout().

<script>setTimeout(functionName, 10000);</script>

Вы можете использовать обычный JS (или даже jQuery) для внесения изменений. Если вам нужно вызвать действие JSF, вызовите файл jsf.ajax.request().

person BalusC    schedule 03.03.2011
comment
возможно ли с помощью jsf.ajax.request() выполнить метод компонента? например, #{myBean.calculateDollarValues}, чтобы впоследствии он мог получить доступ к обновленным свойствам. Из документов неясно, пример подсказывает мне, что выполнение на самом деле нажмет commandButton, но это не так. - person Toskan; 10.01.2012
comment
@Toskan: Только если компонент присутствует в представлении или когда вы используете пользовательский компонент, который ничего не отображает, но учитывает это в decode(). - person BalusC; 10.01.2012
comment
Ах хорошо. Я понял, что для выполнения чего-либо вам нужен компонент (например, h: commandLink), который сделает это за вас в любом случае (будь то хакерский, не отрисованный, скрытый или просто видимый). Но как бы вы, используя js-функцию jsf.ajax.request, отправить эту команду? - person Toskan; 10.01.2012