PDA

View Full Version : [generale] come funziona il multitab del browser?


nick091
06-08-2009, 09:35
Sto facendo un programma con jsp/jsf da far girare su tomcat.
Poichè devo tenere sotto controllo la sessione volevo gestire in qualche modo le schede o finestre multiple aperte dal browser sulla applicazione, ma non riesco a trovare niente in proposito.

Se ho la stessa pagina aperta su più schede e da ciascuna scheda richiedo di aprire un'altra pagina ottengo la/le nuove pagine nelle schede corrette, indipendentemente dalla scheda corrente.

Come fa il browser ad aggiornare la scheda giusta? E' una roba che sta tutta nel browser, o nella request c'è qualcosa legato alla scheda?

tomminno
06-08-2009, 11:27
Sto facendo un programma con jsp/jsf da far girare su tomcat.
Poichè devo tenere sotto controllo la sessione volevo gestire in qualche modo le schede o finestre multiple aperte dal browser sulla applicazione, ma non riesco a trovare niente in proposito.


Non è possibile controllare lato server come l'utente visualizza le pagine (multi-tab, multi-finestra o altro).


Se ho la stessa pagina aperta su più schede e da ciascuna scheda richiedo di aprire un'altra pagina ottengo la/le nuove pagine nelle schede corrette, indipendentemente dalla scheda corrente.

Come fa il browser ad aggiornare la scheda giusta? E' una roba che sta tutta nel browser, o nella request c'è qualcosa legato alla scheda?

:confused: cosa intendi per "aggiornare la scheda giusta"?
Mettiamo che l'utente ha 2 tab aperti sulla stessa pagina, se c'è un link che specifica target="_blank" viene aperta una nuova scheda per entrambe le pagine, altrimenti viene visualizzato nello stesso tab di origine per ognuna delle 2 pagine precedentemente aperte.

nick091
06-08-2009, 11:39
Mi riferivo al caso di default, in cui la nuova pagina si apre nella stessa scheda.

In ogni caso mi resta la curiosità di come faccia il browser a gestire sta' roba (forse qualche dati identificativo della request che viene reinviato con la response?)

tomminno
06-08-2009, 13:16
Mi riferivo al caso di default, in cui la nuova pagina si apre nella stessa scheda.

In ogni caso mi resta la curiosità di come faccia il browser a gestire sta' roba (forse qualche dati identificativo della request che viene reinviato con la response?)

Ogni tab è indipendente dagli altri ed esegue il proprio flusso di esecuzione, ogni tab apre il proprio socket perciò sa benissimo cosa gli sta arrivando ;)

nuovoUtente86
06-08-2009, 13:45
Ogni thread che gestisce la singola scheda apre una connessione tcp su una porta locale random, cosi vengono differenziati i flussi. La gestione dei cookie invece ha scope globale al processo, quindi ogni istanza (con eventualmente piu finestre)gestisce i cookie separatamente.

tomminno
06-08-2009, 13:58
Ogni thread che gestisce la singola scheda apre una connessione tcp su una porta locale random, cosi vengono differenziati i flussi. La gestione dei cookie invece ha scope globale al processo, quindi ogni istanza (con eventualmente piu finestre)gestisce i cookie separatamente.

Questo però dipende dal browser, ad esempio indipendentemente da quante finestre apri il processo di Firefox è sempre unico perciò non hai modo di gestire i cookie separatamente, anzi non puoi nemmeno far partire insieme 2 istanze diverse del browser (tipo la 3.5 e Firefox Portable perchè ti avvisa che il browser è già in esecuzione).

nick091
06-08-2009, 17:54
:doh:

azz.. vero, ogni richiesta apre un socket, è tutto lì


Grazie a tutti