Java Portlet是否互相阻止渲染?

时间:2018-12-30 19:45:25

标签: java portlet

标题说的差不多。 Java Portlet是否能够在就绪后立即进行异步渲染,还是页面需要等待每个Portlet首先加载才能进行第一次渲染?我已经浏览了规范,但到目前为止还没有发现任何具体的内容。

1 个答案:

答案 0 :(得分:0)

据我阅读规范(JSR-286,因为您没有提到特定版本),没有什么要求串行或并行渲染。它只是指定portlet呈现的 。您只是不能假设您仍然与其他所有portlet处于同一个HttpServletRequest处理程序中。

不仅没有指定它,而且即使在一个实现中也可能有所不同。我已经用Liferay的较早版本进行了测试,其中有两个Portlet选项:平台用动态占位符透明地替换Portlet的内容,发出Ajax请求以提取呈现的Portlet的输出。有问题的模拟portlet的渲染方法中仅包含Thread.sleep(2000)

尽管异步渲染的规范不在JSR-286中,但在Liferay中,它是一个单一的配置值,对实现没有影响,因此,与平台无关的供应商特定的附件也可以。如果您选择任何较新的实现方式,例如呈现相当静态的代码,以任何方式(通过资源请求或从Web服务)动态地拉动其内容:这完全可以在portlet规范之上工作,因此很容易实现。资源请求标准化,Web服务独立于门户。

最新的Portlet-3.0规范JSR-362:对于基于JS的呈现和标准化的JS方面也有特定的补充。我还不能告诉您太多(至今),但是由于您没有明确提及该标准,因此您可能还没有想到这一点。