У меня есть два портлета на одной странице. Портлет A выполняет очень быструю задачу, а портлет B — очень медленную. Портлет B считывает параметр из A. Если я внесу изменения в A (с помощью RenderURL), Liferay отобразит всю страницу (включая медленный портлет B). Как я могу указать Liferay отображать только портлет A, а не портлет B?
Как отображать портлет без отображения всей страницы. Лайфрей
comment
Похоже, вы должны кэшировать результаты медленной задачи портлета B.
- person Paul Grime   schedule 19.04.2013
Ответы (1)
renderURL всегда будет указывать на всю страницу. Если вы идете «вручную», например. без помощи других фреймворков вам потребуется использовать URL-адрес ресурса и обновить содержимое вашего портлета с помощью Ajax.
Другой вариант — объявить ваш медленный портлет B асинхронным ("ajaxable") и кэшировать вывод, чтобы вам не приходилось постоянно выполнять дорогостоящие операции рендеринга. Параметр ajaxable доступен в файле liferay-portlet.xml и задокументирован для этого файла. Портлет RSS (Liferay-OOTB) настроен таким образом, поскольку может пройти некоторое время, прежде чем этот портлет соберет все свои RSS-каналы и сможет отображать их. Это может быть хорошим планом для необходимых изменений.
person
Olaf Kock
schedule
19.04.2013
Спасибо, решение, которое сработало для меня, заключалось в использовании фреймворка.
- person user1782634; 19.02.2016