#jsf-2 #richfaces
#jsf-2 #richfaces
Вопрос:
У меня есть приложение, запущенное в производство. Несколько раз при нажатии на вкладку для переключения наблюдалось, что вместо 1 ajax-запроса выполняется 2 ajax-запроса.
1) Сначала ajax прошел жизненный цикл JSF и загрузил данные, вызвав метод itemChangeListener (dataBean.tabChangeListener) для вкладки и отобразил их в браузере.
2) Второй ajax-запрос запускается внутри браузера без каких-либо действий пользователя. Заметил, что и в этом втором запросе жизненный цикл jsf выполнен успешно. Но здесь метод прослушивания смены вкладки не выполняется.
Это выглядит как странное поведение. Почему он запускает 2 ajax-запроса вместо одного?. Мы также использовали теги jstl, facelets в коде.
Заранее спасибо за любую помощь.
Я устал, включив <a4j:log/>
в файле jsf проверку журналов событий ajax.
Даже проверено на вкладке сеть браузера путем фильтрации типов запросов xhr (ajax).
<rich:tabPanel switchType="ajax" id="tabPanel"
itemChangeListener="#{dataBean.tabChangeListener}" >
Ожидается, что при смене вкладки должен быть запущен только один ajax-запрос.
но на самом деле здесь он запускает 2 ajax-запроса.
Комментарии:
1. Вы можете проверить оба запроса POST, чтобы выяснить, какой именно компонент его запустил: Нажмите на запрос -> Переключиться на вкладку Параметры -> найти
javax.faces.source
отправленный параметр.2. @Selaron, спасибо за ваш ответ.
javax.faces.source
отображается тот же идентификатор клиента (конкретный идентификатор вкладки).3. Возможно, конечный пользователь дважды щелкнул по заголовку вкладки? Вы пробовали это?
4. @Kukeltje, спасибо за ваш комментарий. Но здесь это не двойной щелчок по заголовку вкладки. Два ajax-запроса отправляются только для одного клика.
5. Не зная, что содержат запросы или откуда они пришли, мы мало чем можем помочь. Запросы отправляются
jsf.ajax.request
, проверьте, какие методы его вызывают.