1

我在同一页面上有两个 portlet。Portlet A 执行非常快的任务,而 Portlet B 执行非常慢的任务。Portlet B 从 A 读取参数。如果我对 A 进行更改(使用 RenderURL),Liferay 会呈现整个页面(包括慢速 Portlet B)。我怎么能说 Liferay 只渲染 Portlet A 而不是 Portlet B?

4

1 回答 1

2

renderURL 将始终指向整个页面。如果您使用“手动”,例如没有其他框架的帮助,您将需要利用 resourceURL 并使用 Ajax 刷新您的 portlet 的内容。

另一种选择是将慢速 portlet B 声明为异步(“ajaxable”)并缓存输出,这样您就不必经常进行昂贵的呈现操作。ajaxable 选项在 liferay-portlet.xml 中可用,并记录在该文件中。RSS portlet (Liferay-OOTB) 是这样配置的,因为它可能需要一段时间才能收集到它的所有 RSS 提要并可以呈现。这可能是您所需更改的良好蓝图。

于 2013-04-19T15:08:32.830 回答