2011-11-15 6 views
5

任意のポートレットアプリケーションで、ポートレットを含む同じページが2つのブラウザタブで開かれている場合、最初のページのイベントと2番目のページはどのように区別されますか?Liferayポートレットでイベントを発生

各イベントに固有のIDを割り当てて保存し、リンクを共有できるようにURLに追加したいとします。

誰かがこれについて考えてもらえますか?

また、ページURLが他のコンピュータで開かれている場合、ページに表示されるデータは、最初のコンピュータで見られるデータと同じになります。これはグローバルに設定されています。

どうすればこの問題を解決できますか?

+0

答えが見つかりましたか?ありがとう –

答えて

1

JSR-286 (latest Java Portlet Specification)は、サーバー側とクライアント側のポートレット間通信(IPC)を定義します。 Liferayの実装では、それらはよくherehereと記述されています。

最初の質問:任意のポートレットアプリケーションで

、ポートレットを含む同じページが最初のページにイベントが2ページ目から区別されるか、2つのブラウザのタブで開いている場合はどうなりますか?

  • クライアント側IPC:二つの異なるブラウザのタブ間のLiferay javascriptのイベントを発生し、聞くことはできません。したがって、それらは自動的に区別されます。サーバ側IPCを使用して異なるクライアントウィンドウ間でデータを共有することは可能です(上記のLiferayのリンクを参照してください)。
2番目の質問)例について:

私は、各イベントに固有のIDを割り当て、それを保存し、リンクを共有することができるように、URLに付加します。 誰かがこれについて考えてもらえますか?

  • いい考えです。一般的な実装では、URLに状態を格納するためにURL Fragment Identifier (hash)を使用します。そのためのjQueryの実装を使用する準備がJQuery BBQ

あるページのURLを他のコンピュータ上で開いている場合にも、ページに表示されるデータは、最初のコンピュータ上で見られるデータと同じです。これはグローバルに設定されています。 どうすればこの問題を解決できますか?私はあなたが同じLiferayのユーザーアカウントの話をしていると仮定してい

  • は(それ以外の場合は、Liferayので役割、ユーザー、グループ、ユーザグループまたは組織によってスコープデータに可能です)。 同じユーザーの異なるコンピュータ間でデータを区別するために、クライアントコンピュータに関する状態情報とともにポータルCookieを保存してパスバックすることができます。 LiferayでCookieを設定する方法については、hereを参照してください。
関連する問題