Foros del Web » Programando para Internet » Jquery »

Es correcto recargar consultas así?

Estas en el tema de Es correcto recargar consultas así? en el foro de Jquery en Foros del Web. Me gustaría saber si esto es correcto: Código: <script language="javascript" type="text/javascript"> $(document).ready(function(){ setInterval(actualizar(500)); }); function actualizar(){ $("#mensajes").load("mensajes.php"); }; </script> <div id="mensajes"></div> En mensajes.php tengo una ...
  #1 (permalink)  
Antiguo 11/06/2013, 03:52
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 9 meses
Puntos: 1
Es correcto recargar consultas así?

Me gustaría saber si esto es correcto:

Código:
<script language="javascript" type="text/javascript">

$(document).ready(function(){
             setInterval(actualizar(500));
        });
   
function actualizar(){
             $("#mensajes").load("mensajes.php");
        };

</script>

<div id="mensajes"></div>
En mensajes.php tengo una consulta a la base de datos.

Es para un chat, los usuarios envian mensajes y se registran en la base de datos. Luego mensajes.php imprime esos mensajes, y con jQuery hago que cada medio segundo se actualice el div #mensajes con una nueva consulta, mostrando los nuevos mensajes.

Esto consume muchos recursos del servidor? Porque para cada usuario se hace una consulta cada medio segundo. Está bien hacer así o hay alguna otra manera mejor (más liviana)?
  #2 (permalink)  
Antiguo 11/06/2013, 09:00
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Es correcto recargar consultas así?

evidentemente eso consume mucho del servidor, lo que se conoce como polling, para resolver éste problema se hace uso de otras alternativas, entre ellas:

ajax longpolling
HTML5 Web Sockets (requiere navegador compatible)
SSE (no funciona en IE)
APE (de pago)
Adobe Flash, applets de java o similares (requiere que el usuario lo instale)
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 11/06/2013, 10:35
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Es correcto recargar consultas así?

Para hacer un chat de ese tipo, necesitas tecnologias alternas que estan precisamente optimizadas para aplicaciones que funcionan en tiempo real, como lo es un chat y para eso se utiliza Node.JS.
Desafortunadamente conseguir un hosting con esta tecnologia es muy caro, entonces crear un chat con esas caracteristicas usando PHP y ajax, le va resultar muy pesado a tu servidor.

Lo que podrias hacer, es usar websockets, para esto puedes utilizar Ratchet de PHP:
http://socketo.me/docs/connections

Con esto ya no tienes que guardar los mensajes que los usuarios envien en la BD y luego hacer otra consulta para recuperarlos, sino que el websocket hara la gestion de estos mensajes y lo repplicara a todos los clientes conectados.

Para entender mejor esto te recomiendo leer sobre sockets.

Por supuesto esta es solo mi opinion y una forma sobre como podrias hacer el chat.

¡Saludos!
  #4 (permalink)  
Antiguo 11/06/2013, 11:34
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Es correcto recargar consultas así?

Gracias por sus respuestas, ahora todo me queda un poco más claro. Por lo visto será un poco complicado hacer el chat.

Yo seguí los pasos de este tutorial: http://www.elwebmaster.com/articulos...n-php-y-jquery
Es para hacer un chat similar a lo que estoy haciendo ahora pero en vez de cargar registros se carga una página html o php. No me da ningún problema ni usa muchos recursos del servidor, el tráfico no es mucho. Pero no se como reaccionaría con una base de datos.

Es que necesito hacerlo más dinámico y por eso necesito la base de datos. Ahora con lo que me mostraron quiero hacerlo bien, pero supongamos que decida implementar este chat temporalmente mientras preparo uno bien hecho. El movimiento del chat es poco: solo una vez a la semana a determinada hora del día se conectan de 15 a 25 usuarios al mismo tiempo, por aproximadamente 1 hora. Para hacer una reunion de una comunidad. Solo eso llegaría a colapsar el servidor?
Además dispongo de un VPS y me va muy bien y tiene mucho tráfico, exepto el chat que solo se usa practicamente una vez por semana.

Justamente antes le había preguntado a mi proovedor si soportaría un chat, y lo que me dijo fue que puedo poner cualquier chat, desde que esté hecho con ajax y php. Y que si llega a sobrepasar los limites del servidor me lo avisarían. Puse aquel chat y controlo la carga del servidor, y hasta ahora no tuve problemas. No sé como será con este xD pero igual voy a hacerlo de la manera correcta. Los usuarios se van sumando y voy a necesitar un buen chat.

Última edición por mathiasmontiel; 11/06/2013 a las 11:42

Etiquetas: correcto
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 04:04.