Events Liferay Portlet中的事件

Events Liferay Portlet中的事件,events,communication,liferay,portlet,unique-id,Events,Communication,Liferay,Portlet,Unique Id,在任何portlet应用程序中,如果包含portlet的同一页面在两个浏览器选项卡中打开,那么第一个页面中的事件与第二个页面中的事件有何区别 我想为每个事件分配一个唯一的Id,存储它并将其附加到URL,以便可以共享链接 有人能提供他们对此的想法吗 此外,如果页面URL在其他计算机上打开,则页面上显示的数据与第一台计算机上显示的数据相同。这是在全球范围内设置的 如何消除这种情况?定义了服务器端和客户端Portlet间通信(IPC)。对于Liferay实现,对它们进行了详细的描述和说明 第一个问题:

在任何portlet应用程序中,如果包含portlet的同一页面在两个浏览器选项卡中打开,那么第一个页面中的事件与第二个页面中的事件有何区别

我想为每个事件分配一个唯一的Id,存储它并将其附加到URL,以便可以共享链接

有人能提供他们对此的想法吗

此外,如果页面URL在其他计算机上打开,则页面上显示的数据与第一台计算机上显示的数据相同。这是在全球范围内设置的

如何消除这种情况?

定义了服务器端和客户端Portlet间通信(IPC)。对于Liferay实现,对它们进行了详细的描述和说明

第一个问题: 在任何portlet应用程序中,如果包含portlet的同一页面在两个浏览器选项卡中打开,那么第一个页面中的事件与第二个页面中的事件有何区别

  • 客户端IPC:无法在两个不同的浏览器选项卡之间触发和侦听Liferay javascript事件。因此,它们将被自动区分。但是,您可以使用基于cookie的方法来实现它(如果感兴趣,请查看)
  • 服务器端IPC:可以使用服务器端IPC在不同的客户端窗口之间共享数据(服务器端)(有关示例,请参阅上面的Liferay链接)
第二个问题: 我想为每个事件分配一个唯一的Id,存储它并将其附加到URL,以便可以共享链接。 有人能提供他们对此的想法吗

  • 这是个好主意。一种常见的实现是使用url在url中存储状态。这是一个随时可用的JQuery实现
此外,如果页面URL在其他计算机上打开,则页面上显示的数据与第一台计算机上显示的数据相同。这是在全球范围内设置的。 我怎样才能消除这种情况

  • 我假设您使用的是同一个Liferay用户帐户(否则,可以在Liferay中按角色、用户、组、用户组或组织对数据进行范围划分)。 要区分同一用户的不同计算机之间的数据,可以存储并传回门户cookie,其中包含有关客户端计算机的状态信息。有关如何在Liferay中设置cookie的信息,请参见

你找到答案了吗?谢谢