2012-08-30 5 views
6

La ventana de chat de Facebook permanece abierta, sin cambios, para actualizar la página, o incluso cuando cambiamos de página. ¿Cómo reproducir algo similar? Intenté con el conjunto de marcos, pero no funcionó.Ventana como Facebook chat

¿Cómo mantener un div abierto una ventana similar a la interna, incluso después de actualizar la página o clocar en un enlace de sitio web?

+0

tiene que persistir el estado de la ventana a algo. ya sea una cookie, la sesión o una base de datos (o cualquier cantidad de cosas). – Shmiddty

+0

Lo haría por AJAX –

+0

Si ** recarga ** la página con el botón del navegador, no "permanece abierta" - se vuelve a cargar junto con todo lo demás en la página. Todo lo demás que haces usando su UI es simplemente ajax y no está recargando la página del servidor, simplemente están actualizando secciones de la página sin tocar la sección de chat. –

Respuesta

1

Al igual que ellos, se puede tratar -

  1. Los datos se comparte entre las páginas de Facebook. Probablemente HTML5 localStorage? ¿Galletas? No estoy seguro.

  2. Si nota que no "actualizan" la página, ajax-actualizan el contenido de la página para cargas posteriores. (A menos que navegar manualmente a la misma página, por supuesto.)

  3. Por último, su todo CSS principalmente algunos z-index objeto de un uso.

Espero que esos 3 sean suficientes para empezar.

0

No creo que se cargue la página completa de Facebook. Cada enlace tiene su propio "objetivo". La mayoría de ellos buscan una página (creo que simplemente con AJAX) para mostrar, otros simplemente cambian algunos parciales de la pantalla. Digamos que tienes dos divs. Un div es el chat-div. Posicionamiento fijo y todo, z-index en 100, siempre estará en la parte superior. El resto de la página es el otro div. Dentro de este div, puede cargar ciertas páginas con AJAX, sin toda la pantalla para actualizar.

Al igual que con las recargas de la pantalla: puede guardar fácilmente (también con AJAX) si el usuario cerró la pantalla de chat o si se abrió. Simplemente cree una tabla en una base de datos llamada 'chats' o algo así, luego cuando se abra una chatscreen ponga una entrada en esa tabla con 'person_1', 'person_2' 'lastmessage' y 'active'. Cuando cierran el chat, puedes poner el campo 'activo' en falso. Luego, cada vez que alguien carga todo el sitio web, revisa los chats de la mesa en busca de chats activos y los muestra cuando los hay.

0

Me gustaría ver en qjuery-qjax: https://github.com/defunkt/jquery-pjax

Desde sus documentos:

obras pjax por el acaparamiento de HTML desde el servidor a través de AJAX y reemplazar el contenido de un contenedor en su página con el Ajax 'd html. A continuación, actualiza la URL actual del navegador mediante pushState sin volver a cargar el diseño de la página ni los recursos (js, css), lo que le da la apariencia de una carga de página rápida y completa. Pero realmente es solo ajax y pushState.

Cuestiones relacionadas