Non penso che l'intera pagina di Facebook sia caricata. Ogni link ha il suo "target". Molti di loro prelevano una pagina (penso semplicemente con AJAX) per mostrare, altri semplicemente cambiano alcuni partial dello schermo. Quindi diciamo, hai due div. Un div è il chat-div. Posizionamento fisso e tutto, z-index su 100, rimarrà sempre in primo piano. Il resto della pagina è l'altro div. All'interno di questo div è possibile caricare determinate pagine con AJAX, senza aggiornare l'intero schermo.
Come con i ricarichi dello schermo: è possibile salvare facilmente (anche con AJAX) se l'utente ha chiuso la schermata della chat o se l'ha aperta. Basta creare una tabella in un database chiamato "chat" o qualcosa del genere, quindi quando viene aperto un chatscreen si inserisce una voce in quella tabella con "person_1", "person_2" "lastmessage" e "active". Quando chiudono la chat, puoi mettere il campo 'attivo' su falso. Quindi, ogni volta che qualcuno carica l'intero sito Web, controlli le chat delle tabelle per le chat attive e le mostra quando ce ne sono.
fonte
2012-08-30 19:14:21
è necessario mantenere lo stato della finestra su qualcosa. un cookie, la sessione o un database (o un numero qualsiasi di cose). – Shmiddty
Lo farei per AJAX –
Se ** ricarichi ** la pagina con il pulsante del browser, non "rimane aperta" - è ricaricata insieme a tutto il resto sulla pagina. Tutto il resto che fai usando la loro interfaccia utente è semplicemente ajax e non sta ricaricando la pagina dal server, stanno semplicemente aggiornando le sezioni della pagina in posizione mentre non toccano la sezione della chat. –