2011-11-15 99 views
5

在任何Portlet應用程序中,如果在兩個瀏覽器選項卡中打開了包含Portlet的相同頁面,第一頁中的事件與第二頁如何區分?Liferay Portlet中的事件

我想爲每個事件分配一個唯一標識,將其存儲並附加到URL中,以便可以共享該鏈接。

有人可以提供他們的想法嗎?

此外,如果頁面URL在其他計算機上打開,則頁面上顯示的數據與第一臺計算機上顯示的數據相同。這是全球性的。

我該如何消除這種情況?

+0

你有沒有找到答案?謝謝 –

回答

1

JSR-286 (latest Java Portlet Specification)定義了服務器端和客戶端端口間通信(IPC)。對於Liferay的實施,他們很好地描述了herehere

第一個問題:

在任何portlet應用程序,如果包含一個portlet在同一頁面兩種瀏覽器標籤頁打開時,如何在第一頁的事件從第二頁尊敬?

  • 客戶端IPC:這是不可能的火災和監聽的Liferay JavaScript的兩個不同的瀏覽器標籤頁之間的事件。所以他們會自動區分。但是,您可以使用基於cookie的方法來實現它(如果感興趣,請查看here
  • 服務器端IPC:可以使用服務器端IPC在不同客戶端窗口之間共享數據(服務器端)(請參閱上述Liferay鏈接的例子)
第二個問題:

我要分配一個唯一的ID爲每個事件,存儲並將其追加到URL,這樣的鏈接可以被共享。 有人可以提供他們的想法嗎?

此外,如果頁URL打開其他計算機上的頁面上顯示的數據是一樣的看到的第一臺計算機上的數據。這是全球性的。 我該如何消除這種情況?

  • 我假設你在說相同的Liferay的用戶帳戶(否則就按角色,用戶,用戶組,用戶在Liferay的團體或組織可能範圍的數據)。 要爲同一用戶區分不同計算機之間的數據,可以存儲並返回有關客戶端計算機狀態信息的門戶cookie。有關如何在Liferay中設置Cookie,請參閱here