2011-11-15 19 views
5

In qualsiasi applicazione di portlet, se la stessa pagina contenente un portlet viene aperta in due schede del browser, qual è l'evento nella prima pagina distinto dalla seconda pagina?Evento nei portlet Liferay

Desidero assegnare un ID univoco per ciascun evento, archiviarlo e aggiungerlo all'URL in modo che il collegamento possa essere condiviso.

Qualcuno può fornire le proprie opinioni al riguardo?

Inoltre, se l'URL della pagina viene aperto su un altro computer, i dati mostrati sulla pagina sono gli stessi visualizzati sul primo computer. Questo è stato impostato a livello globale.

Come posso eliminare questo?

+0

Ti è capitato di trovare la risposta? Grazie –

risposta

1

JSR-286 (latest Java Portlet Specification) definisce lato server e lato client Inter Portlet Communication (IPC). Per l'implementazione di Liferay sono ben descritti here e here.

Prima domanda:

In qualsiasi applicazione portlet, se la stessa pagina che contiene un portlet è aperto in due schede del browser, come è il caso nella prima pagina distinta dalla seconda pagina?

  • lato client IPC: non è possibile sparare e ascoltare un Liferay javascript evento tra due differenti schede del browser. Quindi saranno automaticamente distinti. Tuttavia è possibile utilizzare un approccio basato sui cookie per implementarlo (vedi here se interessato)
  • Lato server IPC: è possibile condividere i dati (lato server) tra finestre client diverse utilizzando IPC lato server (vedere i collegamenti Liferay di cui sopra per gli esempi)
seconda domanda:

voglio assegnare un ID univoco per ogni evento, conservarlo e aggiungerlo alla URL in modo che il link può essere condiviso. Qualcuno può fornire le proprie opinioni su questo?

  • È una buona idea. Un'implementazione comune consiste nell'utilizzare un url Fragment Identifier (hash) per memorizzare lo stato nell'URL. Un pronto ad usare l'esecuzione JQuery per questo è JQuery BBQ

Inoltre, se l'URL della pagina viene aperto su un altro computer i dati riportati sulla pagina è la stessa in quanto i dati osservati sul primo computer. Questo è stato impostato a livello globale. Come posso eliminare questo?

  • sto supponendo che si sta parlando dello stesso account utente Liferay (altrimenti è possibile i dati di portata per ruolo, utente, gruppo, gruppo di utenti o un'organizzazione in Liferay). Per differenziare i dati tra computer diversi per lo stesso utente, è possibile memorizzare e ritrasferire ai cookie del portale con informazioni sullo stato del computer client. Vedi here per come impostare cookie in Liferay.
Problemi correlati