View Full Version : [generale] come funziona il multitab del browser?
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.
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).
:doh:
azz.. vero, ogni richiesta apre un socket, è tutto lì
Grazie a tutti
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.