2014-04-09 120 views
4

我身邊有4個portlet和我的第2頁網頁內容設置portlet的加載順序。在4個portlet中,一個是自定義portlet。我的要求就像我需要在最後加載自定義portlet。 我知道我們可以從Liferay的portlet的-app_6_2_0.dtd在Liferay中,portlet.xml中如何在Liferay的門戶

<render-weight>0</render-weight>

添加下面的條目設置此我知道了 ,使重的默認值是1.如果設置爲小於1的值,則 portlet將並行呈現。如果設置爲1或更大的值,則將連續渲染Portlet 。具有較高呈現權重的Portlet具有更高的優先級,並且將在具有較低呈現權重的Portlet之前呈現。

我的問題是,如何設置渲染重量Liferay的Portlet的。我是否需要在某些屬性文件中輸入內容,或者我可以使用控制面板來實現此功能。

+2

AFAIK做0<ajaxable>true,還有心不是規定通過ControlPanel控制達到或屬性文件。您可以創建分機插件,以及爲什麼需要在最後加載自定義portlet提供的Liferay的portlet-ext.xml –

+0

變化? – Mark

+0

自定義Portlet有一些冗餘代碼,因此需要花費時間來加載頁面。如果我刪除了自定義Portlet,則頁面加載速度更快。我只想在不更改代碼的情況下加載頁面。我知道代碼中的冗餘應該被刪除,但改變它會產生很大的影響。所以我發現,在頁面加載時,是否有任何方式首先加載所有Web內容或Portlet,並最終加載此特定Portlet。 – Pranoti

回答

5

沒有渲染秩序的保障,你不應該在呈現階段改變任何狀態 - 事實上沒有狀態變化(如公共呈現參數等)傳播,如果僅僅是因爲你甚至不能改變他們RenderRequest中/的renderResponse。

如果你依賴於特定的渲染順序的假設,你倒是應該改變體系結構,使這一假設不再需要。如果portlet需要一些時間進行渲染,則可以使其異步顯示(例如,像內置的RSS portlet一樣)。如果我沒有記錯,這是通過設置在<render-weight>liferay-portlet.xml