Eventing в Liferay Portlets - PullRequest
       19

Eventing в Liferay Portlets

5 голосов
/ 15 ноября 2011

В любом приложении с портлетами, если одна и та же страница, содержащая портлет, открывается на двух вкладках браузера, как событие на первой странице отличается от второй страницы?

Я хочу назначить уникальный идентификатор дляДля каждого события сохраните его и добавьте к URL-адресу, чтобы можно было поделиться ссылкой.

Может ли кто-то высказать свое мнение по этому поводу?

Кроме того, если URL-адрес страницы открыт на другом компьютереданные, отображаемые на странице, совпадают с данными, отображаемыми на первом компьютере.Это устанавливается глобально.

Как я могу устранить это?

1 Ответ

1 голос
/ 06 ноября 2012

JSR-286 (последняя спецификация портлетов Java) определяет межпортлетную связь (IPC) на стороне сервера и на стороне клиента.Для реализации Liferay они хорошо описаны здесь и здесь .

Первый вопрос:

В любом приложении с портлетами, если одна и та же страница, содержащая портлет, открывается вдве вкладки браузера, как событие на первой странице отличается от второй страницы?

  • IPC на стороне клиента : невозможно запустить и прослушать LiferayСобытие JavaScript между двумя вкладками браузера.Таким образом, они будут автоматически различаться.Однако вы можете использовать подход, основанный на cookie, для его реализации (смотрите здесь , если интересно)
  • IPC на стороне сервера : существует возможность обмена данными (на стороне сервера) междуразличные клиентские окна с использованием IPC на стороне сервера (см. ссылки выше Liferay для примеров)
Второй вопрос:

Я хочу назначить уникальный идентификатор для каждого события, сохранить его и добавить к URL-адресутак что ссылку можно поделиться.Может кто-нибудь высказать свои мысли по этому поводу?

  • Это хорошая идея.Распространенной реализацией является использование URL-адреса Идентификатор фрагмента (хэш) для хранения состояния в URL-адресе.Готовая к использованию реализация JQuery для этого: JQuery BBQ

Кроме того, если URL-адрес страницы открыт на другом компьютере, данные, отображаемые на странице, совпадают с даннымиданные, увиденные на первом компьютере.Это устанавливается глобально.Как я могу устранить это?

  • Я предполагаю, что вы говорите об одной и той же учетной записи пользователя Liferay (в противном случае можно ограничить объем данных по роли, пользователю, группе, группе пользователей илиорганизация в Liferay).Чтобы различать данные между разными компьютерами для одного и того же пользователя, вы можете сохранить и передать файлы cookie портала с информацией о состоянии клиентского компьютера.Смотрите здесь , чтобы узнать, как установить cookie в Liferay.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...