Pregunta:
¿hay una forma mejor de hacer esto, es que esto me consume mucho? sex?
Vegeta
2012-08-08 11:18:10 UTC
sexta vez que pregunto y no, no me equivoque de categoría si no que en las demás no hay usuarios casi y aqui si y aparte inteligentes =) y algunos que entran a preguntas curiosas como en mi titulo, bueno, tengo una galeria de imagenes horizontal tipo metroflog y badoo.
aparecen solo la foto de perfil de los ultimos 10 usuarios.
ahora quiero que se actualice la lista automáticamente cuando se agregue un nuevo usuario de tal forma que solo se vean 10 y el num 1 ya no se vea ya que se desplazo y se ve solo lo nuevo. solo eso
lo que quiero es saber la forma en php o jquery o javascript o ajax de saber cuando hay un usuario nuevo y que solo cuando haya un usuario nuevo entonces la lista se actualice.
tampoco quiero que este checando la base de datos con un ciclo while infinito ni que cada cierto tiempo por que eso no se debe hacer por que consume muchos recursos ademas de que no se actuliazaria en tiempo real.
alguna pagina o idea?
Tres respuestas:
lolita
2012-08-09 05:16:39 UTC
Te equivocaste de categoría.



Y es fácil Vegeta, solo haz una función javaScript o JQuery donde al registrarse un nuevo usuario se publique su foto en esa galería.



Según en qué lo hagas será la sintaxis, pero esquemáticamente sería:



Si--> registro nuevo usuario---> true ---> id usuario--->foto---> caja número 10, y reemplazar las otras cajas por su id usuario siguiente, para esto debes guardar por supuesto el id usuario que ocupa cada caja.
?
2012-08-08 12:15:05 UTC
utiliza ajax para desplegar la lista de usuarios y su foto para refresco automático de la page



como dices, con un trigger de la bd que se dispare cuando se haga un insert de una nueva tupla en la tabla de usuarios registrados, mandale un evento refresh al area de ajax destinada para dibujar los datos y la fotos
Panzerfaust Viewer
2012-08-08 11:32:30 UTC
Algunas bases de datos permiten programar triggers y con ello disparar funciones cuando algo cambie. De otra forma el programa cliente deberia de "polear" constantemente los datos para ver si hubo algun cambio.



Prueba con javascript, si tu aplicacion es web y con un timer has que se ejecute un codigo cada cierto tiempo y ese codigo vaya y revise los datos originales y actualice el objeto donde tienes la lista



---------------------------------------



El problema es que el browser esta realmente desconectado de la fuente de datos para recibir informacion no solicitada y aunque se dispare un trigger en la base de datos cada vez que se inserte un elemento a una tabla y este inicie un stored procedure, deberia haber algo del otro lado que capture el evento y modifique el objeto lista que despliegas.



Pero para hacer esto deberias de tener codigo del otro lado para "escuchar" mensajes, y programarlo con Java o algun otro lenguaje que permita abrir sockets de TCP/IP o utilizar mensajeria como message queues de Microsoft (debe haber algo similar en Linux, que me imagino que es tu objetivo)



Te recomiendo mejor que trates con la opcion del poleo a la base de datos, digamos cada 20 segundos, si el enlace es bueno y la sesion a la base de datos se mantiene abierta el resultado lo podrias tener en menos de 200 milisegundos y solo si ha habido modificaciones refrescarias el objeto lista



----------------------------------------



El problema principal es con la arquitectura del browser es lo que se llama un thin client y que lleva poco codigo y esta dentro de un area protegida (sand box), si fuera un fat client, como un programa local en C o Visual Basic, entonces se le podria agregar alguna rutina para "escuchar" un evento externo, que seria lo mas eficiente que se podria programar



Como decia un maestro: no te preocupes tanto por la eficiencia en la programacion y deja que las maquinas hagan su trabajo



--------------------------------



Revisa las funciones de timer de javascript y creo que es lo que necesitas



http://www.w3schools.com/js/js_timing.asp


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...