respuesta actualiza basándose en los comentarios
Esto va a ser un poco más trabajo de lo que probablemente quería que fuera. Necesitarás una base de datos con 2 tablas. Tabla se llevará a cabo identificaciones de las sesiones activas y el cuadro 2 sostendrá mensajes:
tblSessions
ID Int
LastSeen DateTime
SessionID Varchar(255)
tblMessages
ID Int
Timestamp DateTime
SessionID Varchar(255)
Message Varchar(255)
Cuando un visitante llega a su página, es necesario comprobar si el visitante tiene un ID de sesión. Si el visitante ya tiene una ID de sesión, actualice la columna LastSeen
en la tabla tblSessions
. Si el visitante no tiene una ID de sesión, asigne y agréguelo a la tabla tblSessions
. Este código debe ejecutarse en todas sus páginas cuando se cargan.
Deberá ejecutar una consulta en la tabla de la base de datos tblSessions
para eliminar todas las entradas que tengan un LastSeen
anterior a alguna X veces. El valor de X debe ser, por ejemplo, 5 min. Esta consulta podría ejecutarse en la parte superior de cada carga de la página, o en un proceso de backend del servidor.
Ahora, cada vez que desee flashear las pantallas de todos, agregue una entrada en tblMessages
para cada entrada en tblSessions
. Establezca Timestamp
en el momento en que envía el mensaje y establezca Mensaje en "flash".
En el lado de los navegadores en javascript, configure una función de sondeo con setInterval
. En sus funciones de sondeo, llame un script ajax a una página del servidor para devolver cualquier mensaje. Este script del lado del servidor debe consultar el tblMessages
para ver si hay entradas para el ID de sesión actual y devolverlas. También debería eliminar las entradas de la tabla.
De regreso en su función de búsqueda de javascript, puede verificar el mensaje "Flash" y mostrar la pantalla. Cuanto más frecuentemente se llame a la función de sondeo, más en tiempo real su visitante será, pero más de una carga será en su servidor.
Al igual que con la tabla tbleSessions
, querrá eliminar las entradas antiguas de la tabla tblMessages
si son más de X +1 min. O obtendrán resultados antiguos en la tabla que pueden causar problemas en el futuro.
Así ... Esto mostrará la pantalla para cualquiera que visite su página, más o menos al mismo tiempo. Digo más o menos porque no hay forma de flashear exactamente al mismo tiempo con el retraso de la red y todos los sondeos en tiempos ligeramente diferentes ... Bueno, no es una forma fácil en cualquier caso.
¿Está confuso "ventana" con "div"? AFAIK, quieres decir que quieres el efecto de flash para todos los elementos con un estilo de CSS particular. –
no estoy hablando de múltiples divs ... esto de la ventana del navegador. Puedes ver la subasta flash aquí ... http://www.beezid.com/ .. ese efecto se aplica cuando un clic en el botón de oferta ... es lo que quiero – Gowri
Entonces, quieres algo para "flashear" ** todos ** navegadores abiertos (en todo Internet) que está viendo esa página web en particular? ¿Te gusta esa página de subastas, que parpadea en todos los navegadores que ven esa página cuando alguien hace una oferta? ¿O como Stack Overflow que muestra un mensaje cuando alguien ha agregado una nueva respuesta? Me temo que has hecho la pregunta incorrecta entonces. Esto requiere XHR/Ajax. –