2011-11-15 16 views
5

W każdej aplikacji portletowej, czy ta sama strona zawierająca portlet jest otwierana w dwóch kartach przeglądarki, w jaki sposób wydarzenie na pierwszej stronie odróżnia się od drugiej strony?Eventing w portletach Liferay

Chcę przypisać unikalny identyfikator dla każdego zdarzenia, zapisać go i dołączyć do adresu URL, aby umożliwić udostępnienie łącza.

Czy ktoś może przedstawić swoje zdanie na ten temat?

Ponadto, jeśli URL strony jest otwarty na innym komputerze, dane wyświetlane na stronie są takie same, jak dane widoczne na pierwszym komputerze. Jest to ustawiane globalnie.

Jak mogę to wyeliminować?

+0

Czy znalazłeś odpowiedź? Dzięki –

Odpowiedz

1

JSR-286 (latest Java Portlet Specification) definiuje komunikację między portletami po stronie serwera i po stronie klienta (IPC). Do wdrożenia Liferay są dobrze opisane: here i here.

Pierwsze pytanie:

W dowolnej aplikacji portletu, jeśli ta sama strona zawierająca portlet jest otwierany w dwóch zakładek przeglądarki, jak to wydarzenie na pierwszej stronie różni się od drugiej strony?

  • Client Side IPC: To nie jest możliwe, aby ogień i słuchać o Liferay javascript wydarzenie pomiędzy dwoma różnymi kartami przeglądarki. Zostaną więc automatycznie wyróżnione. Jednak możesz użyć podejścia opartego na plikach cookie w celu zaimplementowania go (spójrz na here, jeśli jest zainteresowany)
  • Server Side IPC: możliwe jest udostępnianie danych (po stronie serwera) między różnymi oknami klienta za pomocą IPC po stronie serwera (patrz powyższe linki Liferay przykłady)
Drugie pytanie:

chcę przypisać unikatowy identyfikator dla każdego zdarzenia, należy go przechowywać i dołączyć go do adresu URL tak, że związek może być dzielona. Czy ktoś może przedstawić swoje zdanie na ten temat?

  • To dobry pomysł. Powszechną implementacją jest użycie adresu url Fragment Identifier (hash) do przechowywania stanu w adresie URL. Gotowy do użycia dla realizacji JQuery to JQuery BBQ

Ponadto, jeśli strona jest otwarta na URL drugim komputerze dane przedstawione na stronie są takie same jak dane widoczne na pierwszym komputerze. Jest to ustawiane globalnie. Jak mogę to wyeliminować?

  • Ja zakładając, że mówimy o tym samym koncie Liferay użytkownika (w przeciwnym razie możliwe jest zakres danych o roli, użytkownika, grupy, grupy użytkowników lub organizacji w Liferay). Aby rozróżnić dane między różnymi komputerami dla tego samego użytkownika, można przechowywać i przekazywać pliki cookie portalu z informacjami o stanie komputera klienckiego. Zobacz, jak ustawić plik cookie w Liferay.