Таблица данных JSF 2 обновлена ​​через AJAX - PullRequest
2 голосов
/ 03 марта 2012

В настоящее время у меня есть такой рабочий процесс:

  1. Пользователь вводит список мобильных номеров в текстовое поле.
  2. Пользователь выбирает вариант отправки формы (не AJAX).
  3. Система обрабатывает идентификаторы, отображает таблицу данных JSF 2 со всеми номерами мобильных телефонов для пользователя на новой странице.
  4. Система продолжает извлекать информацию о каждом мобильном номере последовательно (по одному номеру за раз) и обновляет ее в DataTable. * * 1010

В настоящее время я не уверен, что мне следует сделать, чтобы выполнить шаг 4 после отображения таблицы данных на шаге 3.

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

1 Ответ

2 голосов
/ 03 марта 2012

Есть несколько вариантов выполнения 4. Отличительный выбор заключается в том, чтобы клиент инициировал обновление или сервер делал это.

В первом случае вы будете смотреть на традиционный AJAX,и вы можете использовать компонент опроса AJAX.Как PrimeFaces, так и RichFaces имеют такой компонент (p: poll и a4j: poll соответственно)

По умолчанию запросы AJAX сериализуются через одну очередь, поэтому требование «один номер за раз» будет автоматически выполнено,Поскольку вы хотите опросить только один раз, вы должны остановить опрос сразу после получения результата.

Другой вариант - позволить серверу передавать данные клиенту (иногда это называется обратным AJAX).В вашем случае, когда извлекаются данные для исходной таблицы с номером мобильного телефона, вы немедленно выполняете запрос всей дополнительной информации асинхронно.Как только сервер получил эту информацию, он отправляет ее в таблицу данных на клиенте.Вы можете сделать это один за другим, или, если это один запрос, может быть более эффективно обновить всю таблицу за один раз.

Для push у PrimeFaces и RichFaces снова есть компоненты, доступные (p: push vs a4j): push).

См .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...