5

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

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

誰かがこれについて考えを提供できますか?

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

どうすればこれを解消できますか?

4

1 に答える 1

1

JSR-286 (最新の Java ポートレット仕様)は、サーバー側とクライアント側のポートレット間通信 (IPC) を定義します。Liferay の実装については、こちらこちらで詳しく説明されています。

最初の質問:

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

  • クライアント側の IPC : 2 つの異なるブラウザ タブ間で Liferay JavaScript イベントを起動してリッスンすることはできません。したがって、それらは自動的に区別されます。ただし、Cookie ベースのアプローチを使用して実装することもできます (興味がある場合はこちらをご覧ください)。
  • サーバー側 IPC : サーバー側 IPC を使用して、異なるクライアント ウィンドウ間でデータ (サーバー側) を共有できます (例については、上記の Liferay のリンクを参照してください)。
2 番目の質問:

リンクを共有できるように、イベントごとに一意の ID を割り当てて保存し、URL に追加したいと考えています。誰かがこれについての考えを提供できますか?

また、ページの URL が他のコンピューターで開かれた場合、ページに表示されるデータは、最初のコンピューターで表示されるデータと同じです。これはグローバルに設定されています。どうすればこれを解消できますか?

  • 同じ Liferay ユーザー アカウントについて話していると仮定しています (それ以外の場合は、Liferay の役割、ユーザー、グループ、ユーザー グループ、または組織によってデータをスコープすることができます)。同じユーザーのさまざまなコンピューター間でデータを区別するために、クライアント コンピューターに関する状態情報と共にポータル Cookie を保存して戻すことができます。Liferay に Cookie を設定する方法については、こちらを参照してください。
于 2012-11-06T19:50:06.260 に答える