Foros del Web » Programando para Internet » Javascript »

Actualizar DOM para todos los usuarios que visiten una página

Estas en el tema de Actualizar DOM para todos los usuarios que visiten una página en el foro de Javascript en Foros del Web. Hola a todos, una duda de un programador aficionado. He creado una web con php y javascript para llevar los datos de un juego de ...
  #1 (permalink)  
Antiguo 05/03/2021, 06:50
 
Fecha de Ingreso: julio-2008
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Actualizar DOM para todos los usuarios que visiten una página

Hola a todos, una duda de un programador aficionado.

He creado una web con php y javascript para llevar los datos de un juego de mesa con unos amigos.
Con PHP tomo los datos de la BBDD, y con AJAX actualizo la base de datos y el DOM... pero claro. Esto sólo afecta a la web que yo estoy viendo. Si otro jugador está mirando la misma web tiene que hacer F5 para que vuelva a cargar la web y vea el cambio que he hecho.
¿Existe alguna manera de cuando cualquier usuario cambie el DOM de la web se actualice automáticamente su DOM?

Llevo un montón de horas buscando en google, dando vuelta a los conceptos de reactividad, RXJS, Angular, suscribers, etc... pero no se ni por donde cogerlo. ¿Me podéis indicar algún tutorial por el que empezar? Gracias.
  #2 (permalink)  
Antiguo 05/03/2021, 14:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Actualizar DOM para todos los usuarios que visiten una página

Te sugiero utilizar websockets.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 06/03/2021, 10:47
 
Fecha de Ingreso: julio-2008
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Actualizar DOM para todos los usuarios que visiten una página

Muchas gracias, ese era el término que necesitaba. Me estaba volviendo loco.

Ahora va una para nota. ¿Alguna idea de como usar websockets en wordpress??
Por simplicidad y velocidad, lo que he hecho es crear un sitio en WP y luego desarrollar la página que necesito en el tema de WP.
Para el JS y AJAX hay una forma de 'enque' correcto ¿Hay algo especial que hacer con los websockets o simplemente 'encolo' la librearía de JS?
  #4 (permalink)  
Antiguo 06/03/2021, 16:10
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Actualizar DOM para todos los usuarios que visiten una página

Esencialmente tienes que ejecutar el archivo que abre el socket, para lo cual puedes emplear un VPS si tu sitio web se encuentra en un servidor compartido, o en la consola del sistema operativo si se trata de un proyecto local. Después de ello, coloca la dirección IP o nombre del host en los archivos JS y PHP que lanzan el servicio, y finalmente bastaría que en el archivo que ejecuta la llamada AJAX hagas el envío de la información a través del método .send() del websocket, mientras que en otro archivo o bien en el mismo ejecutes la actualización vía AJAX de la vista cada vez que se reciban datos a través del websocket (evento message).

En el artículo que adjunté se detalla mejor todo el proceso. Hace poco hice una aplicación web con notificaciones como las de Facebook que aparecen sin necesidad de hacer una recarga y que avisan acerca de una acción que otro usuario haya llevado a cabo en otra parte de la aplicación, y todo lo basé en lo que se explica en ese artículo. Si tienes una duda, no dudes en preguntar.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: dom, página, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:07.