2011-11-15 41 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