Строка состояния JSF / информация о состоянии соединения - PullRequest
4 голосов
/ 24 августа 2010

Я хотел бы внедрить своего рода информацию для моих пользователей о статусе прогресса. Я нашел несколько компонентов, таких как:

Статус Richfaces или Статус подключения IceFaces

Итак, я хотел бы добавить что-то подобное на мою страницу, особенно для запросов ajax. Какой самый простой способ реализовать это? Я не хотел бы использовать один из этих компонентов, а программировать свой собственный, но я не могу представить, как и сколько усилий это займет:

Я благодарен за идеи ...

1 Ответ

4 голосов
/ 24 августа 2010

Стандартная реализация JSF не предоставляет готовый компонент для этого. Спецификация JSF 2.0 , однако, описывает следующее в главе 13.3.5.2:

.

13.3.5.2 Мониторинг событий для всех запросов Ajax

JavaScript API предоставляет функцию jsf.ajax.addOnEvent, которую можно использовать для регистрации функции JavaScript это будет уведомлено, когда произойдет любое событие Ajax-запроса / ответа. См. Раздел 14.4 «Регистрация обратного вызова». Функции »для более подробной информации. Функция jsf.ajax.addOnEvent принимает аргумент функции JavaScript, который будет уведомляется, когда события происходят во время любого цикла Ajax-запросов / ответов. Реализация должна убедитесь, что зарегистрированная функция JavaScript должна вызываться в соответствии с событиями, описанными в Раздел ТАБЛИЦА 14-3 «События».

Вы можете найти здесь блог одного из разработчиков Mojarra, содержащий основные примеры. Вот выдержка из релевантности:

<h3> Status:</h3>
<textarea id="statusArea" cols="40" rows="10" readonly="readonly" />

Простая текстовая область, даже не подключенная в модель данных внутреннего сервера.

Тогда в нашем javascript (для демонстрации, в отдельно загруженном файле, хотя это может быть так же легко быть на странице) мы есть:

var statusUpdate = function statusUpdate(data) {
    var statusArea = document.getElementById("statusArea");
    var text = statusArea.value;
    text = text + "Name: "+data.source.id;
    if (data.type === "event") {
        text = text +" Event: "+data.name+"\n";
    } else {  // otherwise, it's an error
        text = text + " Error: "+data.name+"\n";
    }
    statusArea.value = text;
};

// Setup the statusUpdate function to hear all events on the page
jsf.ajax.addOnEvent(statusUpdate);
jsf.ajax.addOnError(statusUpdate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...