Загрузка данных после того, как страница JSF завершила рендеринг - PullRequest
0 голосов
/ 29 апреля 2011

Я использую Richfaces 4 и Mojarra 2.0.4. Поэтому я буду рад, если ответ относится только к фреймворку Richfaces 4:)

Я понимаю, что компоненты JSF обрабатываются на стороне сервера. Некоторые из моих страниц действительно ориентированы на данные. Поэтому, когда я загружаю эту страницу (например: внутри richTab с ajax switchType), моему бобу требуется много времени для выполнения метода, отмеченного @PostConstruct, для выполнения и извлечения данных. И, следовательно, промежуток времени между нажатием пользователем на заголовок вкладки и фактическим отображением страницы довольно большой, что очень плохо для пользователя. Я реализовал отложенную загрузку для dataTables на странице, но это все еще не оптимизирует время загрузки моей страницы, так как @PostConstruct все еще там.

Можно ли в любом случае сначала загрузить страницу, а затем извлечь данные с помощью ajax и обновить страницу? Это время загрузки действительно раздражает пользователя. Любая помощь приветствуется:)

PS: я думал об использовании oncomplete и onbeforedomupdate клиентских событий rich:tab и вызова функций ajax, объявленных с a4j:function. Но похоже, что эти события запускаются до , когда страница фактически переключается.

1 Ответ

1 голос
/ 29 апреля 2011

используйте onload событие тега <body> в html вместе с <a4j:jsFunction>

Если вы по-прежнему чувствуете, что ваша страница не отображается полностью до вызова метода, используйте функцию setTimeout('a4jfunctionName',10) JavaScript в onload сначала завершить рендеринг.

...